杉哥的个人博客

使用uwsgi+nginx 部署来部署django——以乳腺增生项目为例

在本地使用runserver可以使django项目运行起来,但这只能在局域网内访问。在生产环境需要用到uwsgi。

首先,要安装django和nginx,这里不讲。

安装uwsgi

uwsgi是python的一个模块,安装uwsgi只需简单的pip命令即可

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip3 install uwsgi
pip3 install uwsgi
pip3 install uwsgi

uwsgi 配置

在项目目录下新建uwsgi.ini文件

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[uwsgi]
socket = 127.0.0.1:8001
chdir=/works/python/ruxian #项目目录
module=ruxian.wsgi
master = true #主进程
workers=2 #子进程数
vacuum=true #退出、重启时清理文件
thunder-lock=true
enable-threads=true #启用线程
harakiri=30 #设置自中断时间
post-buffering=4096 #设置缓冲
daemonize =/works/python/ruxian/uwsgi.log #设置日志目录
[uwsgi] socket = 127.0.0.1:8001 chdir=/works/python/ruxian #项目目录 module=ruxian.wsgi master = true #主进程 workers=2 #子进程数 vacuum=true #退出、重启时清理文件 thunder-lock=true enable-threads=true #启用线程 harakiri=30 #设置自中断时间 post-buffering=4096 #设置缓冲 daemonize =/works/python/ruxian/uwsgi.log #设置日志目录
[uwsgi]
socket = 127.0.0.1:8001
chdir=/works/python/ruxian    #项目目录
module=ruxian.wsgi
master = true    #主进程
workers=2    #子进程数
vacuum=true    #退出、重启时清理文件
thunder-lock=true
enable-threads=true    #启用线程
harakiri=30    #设置自中断时间
post-buffering=4096    #设置缓冲
daemonize =/works/python/ruxian/uwsgi.log    #设置日志目录

Nginx 配置

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
server {
listen 80;
server_name www.rxzs.xxx;
charset utf-8;
client_max_body_size 75M;
location /static{
alias /works/python/ruxian/static;
}
location /media{
alias /works/python/ruxian/media;
}
location / {
include uwsgi_params; #导入一个Nginx模块,用来和uWSGI进行通讯
uwsgi_pass 127.0.0.1:8001; #必须和uwsgi中的设置一致
}
}
server { listen 80; server_name www.rxzs.xxx; charset utf-8; client_max_body_size 75M; location /static{ alias /works/python/ruxian/static; } location /media{ alias /works/python/ruxian/media; } location / { include uwsgi_params; #导入一个Nginx模块,用来和uWSGI进行通讯 uwsgi_pass 127.0.0.1:8001; #必须和uwsgi中的设置一致 } }
server {
       listen 80;
       server_name www.rxzs.xxx;
       charset utf-8;

       client_max_body_size 75M;

       location /static{
           alias /works/python/ruxian/static;
       }

       location /media{
           alias /works/python/ruxian/media;
       }

       location / {
           include uwsgi_params;    #导入一个Nginx模块,用来和uWSGI进行通讯
           uwsgi_pass 127.0.0.1:8001;    #必须和uwsgi中的设置一致
       }
   }

设置完成后,在终端运行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
uwsgi --ini /works/python/ruxian/uwsgi.ini
uwsgi --ini /works/python/ruxian/uwsgi.ini
uwsgi --ini /works/python/ruxian/uwsgi.ini