Nginx部署python框架web项目
Posted on
安装nginx和uwsgi
下载并安装nginx的yum包:
然后执行命令清单 1:
1 2
| yum install nginx pip install uwsgi
|
配置nginx
1
| vim /etc/nginx/conf.d/default.conf
|
基本配置如下,可以看到,
location /
全权交给了uwsgi处理。boss不必亲自对项目动手。location /media/
和 location /static/
静态文件交给谁都可以,但是让boss亲自处理是最简单的方式。- 路径随意设置,但一定要匹配正确
配置清单 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| server { listen 80; server_name localhost; charset utf-8; access_log /var/log/nginx/log/host.access.log main;
location / { uwsgi_pass 127.0.0.1:8077; uwsgi_read_timeout 2; include /etc/nginx/uwsgi_params; }
location /media/ { alias /root/tietest/media/; } location /static/ { alias /root/tietest/static/; } }
|
配置uwsgi
给uwsgi写个任务单,让他知道该去哪儿干些什么。这个任务单可以有好几种方式,这里选个最简单的:
在项目根目录写个 ini文件,命名jie.ini
配置清单 2:
1 2 3 4 5 6 7 8 9
| [uwsgi] vhost = false plugins = python socket = 127.0.0.1:8077 master = true enable-threads = true workers = 1 wsgi-file = /root/tietest/tiejie/wsgi.py chdir = /root/tietest
|
最重要的当然是那个wsgi.py文件。下一步就是配置这个。
配置wsgi.py
这东西是Web服务器网关接口,可以理解为这个项目的的秘书。nginx和项目会谈,只需两个秘书相见就可以了。
配置清单 3
1 2 3 4 5 6 7
| import sys import os sys.path.append('/root/tietest/tiejie') sys.path.append('/root/tietest') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
|
启动生产环境
只要配置无误,然后启动nginx和uwsgi服务就可以了。
命令清单 2
1 2
| service nginx start uwsgi --ini /root/tietest/jie.ini
|
从浏览器输入主机名,可以看到网页了哦。