Nginx部署python框架web项目

安装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

从浏览器输入主机名,可以看到网页了哦。