Django uWSGI+Nginx配置

简介:

一、Django配置

1. 创建一个新项目

1
django - admin.py startproject mysite

2. 创建一个应用

1
python3 startapp app01

3. 编辑urls.py文件,创建一个index页面路由

1
2
3
4
urlpatterns  =  [
     url(r '^admin/' , admin.site.urls),
     url(r '^index/' , views.index),
]

4. 编辑views.py文件,创建视图函数

1
2
def  index(request):
     return  render(request,  "index.html" )

5. 在项目目录下创建templates目录,以及index.html文件

1
2
3
4
5
6
7
8
9
10
< html >
     < head >
         < meta  charset = "UTF-8" >
         < title >index</ title >
     </ head >
     < body >
         < h2 >uWSGI页面</ h2 >
         < img  src = "/static/02.jpg" />
     </ body >
</ html >

6. 在项目目录下创建static目录,将02.jpg文件放进去。

由于我们这次使用uWSGI和Nginx,所以不用在setting.py文件配置静态文件路径。


二、安装配置uWSGI

1. 安装uWSGI

1
pip install uwsgi

2. 测试uWSGI服务器

1
2
3
4
# test.py
def  application(env, start_response):
     start_response( '200 OK' , [( 'Content-Type' , 'text/html' )])
     return  [b "Hello World" ]
1
uwsgi  - - http : 9090  - - wsgi - file  test.py

访问”http://127.0.0.1:9090“,如果出现"Hello World"则表示uWSGI安装成功

3. 在Django项目目录mysite/app01目录下创建一个uwsgi.ini文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[uwsgi]
 
# 配置服务器IP地址和端口
http  =  127.0 . 0.1 : 3309
 
# 配置项目目录
chdir  =  / script / PycharmProjects / mysite
 
# 配置入口模块
wsgi - file  =  mysite / wsgi.py
 
# 开启master
master  =  True
 
# 设置worker进程数量
processes  =  2
 
# 服务器进程开启的线程数量
threads  =  4
 
# 退出清空环境变量
vacuum  =  True
 
# 进程pid
pidfile  =  uwsgi.pid
 
# 配置静态文件目录
check - static  =  / script / PycharmProjects / mysite

4. 启动uWSGI服务器提供静态页面和动态页面访问

1
uwsgi  - - ini uwsgi.ini

5. 访问"http://127.0.0.1:3309/index/",如果出现文件以及图片则表示设置成功

6. 修改uwsgi.ini文件,动态文件留给uWSGI处理,静态文件给Nginx处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[uwsgi]
 
# 配置服务器IP地址和端口
#http = 127.0.0.1:3309
socket  =  127.0 . 0.1 : 3309
 
# 配置项目目录
chdir  =  / script / PycharmProjects / mysite
 
# 配置入口模块
wsgi - file  =  mysite / wsgi.py
 
# 开启master
master  =  True
 
# 设置worker进程数量
processes  =  2
 
# 服务器进程开启的线程数量
threads  =  4
 
# 退出是清空环境变量
vacuum  =  True
 
# 进程pid
pidfile  =  uwsgi.pid
 
# 配置静态文件目录
#check-static = /script/PycharmProjects/mysite


三、安装配置Nginx

1. 安装Nginx

1
2
3
tar  - zxvf nginx - 1.10 . 2.tar .gz
cd nginx - 1.10 . 2
. / configure

2. 环境检查缺失pcre包,安装libpcre3和libpcre3-dev

1
sudo apt - get install libpcre3 libpcre3 - dev

3. 环境检查缺失zlib包,从http://www.zlib.net下载最新软件包并安装

1
2
3
4
5
tar  - zxvf zlib - 1.2 . 11.tar .gz
cd zlib - 1.2 . 11
. / zlib - 1.2 . 11
make
sudo make install

4. 配置使用openssl,从https://www.openssl.org/source/下载最新软件包,并解压

1
tar  - zxvf openssl - 1.0 . 2l .tar.gz

5. 重新运行Nginx configure文件

1
. / configure  - - with - openssl = / Download / openssl - 1.0 . 2l  - - with - http_ssl_module

6. 检查无误,编译安装

1
2
make
sudo make install

7. 配置Nginx,动态文件转给uWSGI处理,静态文件自己处理

默认配置文件路径:/usr/local/nginx/conf/nginx.conf

1
2
3
4
5
6
7
8
location  /  {
     include uwsgi_params;
     uwsgi_pass  127.0 . 0.1 : 3309 ;
}  
 
location  / static {
     alias  / script / PycharmProjects / mysite / static;
}

8. Nginx启停命令

1
2
3
4
cd  / usr / local / nginx / sbin
sudo . / nginx   # 启动
sudo . / nginx  - s stop   # 停止
sudo . / nginx  - reload   # 重新加载配置文件

9. 现在我们把uWSGI和Nginx一起启动,并访问http://127.0.0.1/index/,如果出现文字和图片说明我们已经配置成功了!

本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1972398如需转载请自行联系原作者


daibaiyang119

相关文章
|
5天前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
112 0
|
4天前
|
前端开发 JavaScript 应用服务中间件
终极 Nginx 配置指南
本文介绍了Nginx的基本配置及其优化方法。首先,通过删除注释简化了Nginx的默认配置文件,使其更易于理解。接着,文章将Nginx配置文件分为全局块、events块和http块三部分进行详细解释。此外,还提供了如何快速上线网站、解决前端history模式404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离的具体配置示例。最后,附上了Nginx的基础命令,包括安装、启动、重启和关闭等操作。
|
8天前
|
负载均衡 应用服务中间件 nginx
Nginx的6大负载均衡策略及权重轮询手写配置
【10月更文挑战第9天】 Nginx是一款高性能的HTTP服务器和反向代理服务器,它在处理大量并发请求时表现出色。Nginx的负载均衡功能可以将请求分发到多个服务器,提高网站的吞吐量和可靠性。以下是Nginx支持的6大负载均衡策略:
33 7
|
6天前
|
缓存 前端开发 JavaScript
一、nginx配置
一、nginx配置
54 1
|
8天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
33 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
5天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
38 0
|
7天前
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
51 0
|
8天前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
46 0
|
Web App开发 测试技术 应用服务中间件