操作系统:ubuntu14
** 1. 安装nginx和uwsgi **
sudo apt-get update # 更新apt-get的软件列表
sudo apt-get install nginx # 安装nginx
sudo apt-get install uwsgi # 安装uwsgi
** 2. nginx的配置 **
依次执行如下命令:
cd /etc/nginx/sites-available # 进入nginx的配置文件夹
touch sitename.conf # 新建一个配置文件
vim sitename.conf
并输入以下内容:
server {
listen 80;
server_name domain.cn; # 这里写自己解析到这台服务器的域名,没有的话就写0.0.0.0
charset utf-8;
client_max_body_size 75M;
# 配置映射django项目的media文件
# 配置后当你访问http://domain/media/1.pic时,nginx会自行处理,
# 把你项目中的/home/web-sites/ProjectName/media/1.jpg给返回
# 过去,同理,下面的static也是如此
location /media {
alias /home/web-sites/ProjectName/media; # django项目媒体文件目录
}
location /static {
alias /home/web-sites/ProjectName/static; # django项目静态文件目录
}
location / {
uwsgi_pass django-ProjectName; # 自己写一个名字
include uwsgi_params;
}
}
将刚才的配置文件在sites-enabled建立一个软连接,执行命令如下:
ln -s /etc/nginx/sites-available/sitename.conf /etc/nginx/sites-enabled
service nginx restart # 重启nginx
** 3. uwsgi的配置 **
依次执行如下命令:
cd /etc/uwsgi/apps-vailable
touch myapp.ini # 新建一个配置文件。必须以ini为结尾
vim myapp.ini # 编辑新建的配置文件
并输入以下内容:
[uwsgi]
master = true
chdir = /home/web-sites/ProjectName # 项目目录
processes = 4 # 进程数
socket = /home/web-sites/ProjectName/ProjectName.sock
chmod-socket = 666
wsgi-file = /home/web-sites/ProjectName/ProjectName/wsgi.py
daemonize = /home/web-sites/logname.log # 日志文件地址
同样将刚才的配置文件在apps-enabled建立一个软连接,执行命令如下:
ln -s /etc/uwsgi/apps-available/myapp.ini /etc/uwsgi/apps-enabled
service uwsgi restart # 重启uwsgi
** 注意事项:**
- 新加的配置文件必须为*.ini格式且软连接到/etc/uwsgi/apps-enabled中
- 若有nginx或uwsgi启动失败的问题,可以查看/var/log/nginx.log和/var/log/uwsgi.log这两个日志文件
** 遇到的问题 **
- 启动uwsgi时出现以下错误:
Mon Aug 8 17:14:34 2016 - bind(): Permission denied [core/socket.c line 185]
解决方法为:
更改项目的最上层父目录的权限为755或以上
- 通过nginx访问出现如下错误:
Mon Aug 8 18:13:40 2016 - -- unavailable modifier requested: 0 --
解决方法为:
sudo apt-get install uwsgi-plugin-python