操作系統(tǒng):ubuntu14
** 1. 安裝nginx和uwsgi **
sudo apt-get update # 更新apt-get的軟件列表
sudo apt-get install nginx # 安裝nginx
sudo apt-get install uwsgi # 安裝uwsgi
** 2. nginx的配置 **
依次執(zhí)行如下命令:
cd /etc/nginx/sites-available # 進入nginx的配置文件夾
touch sitename.conf # 新建一個配置文件
vim sitename.conf
并輸入以下內(nèi)容:
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項目靜態(tài)文件目錄
}
location / {
uwsgi_pass django-ProjectName; # 自己寫一個名字
include uwsgi_params;
}
}
將剛才的配置文件在sites-enabled建立一個軟連接,執(zhí)行命令如下:
ln -s /etc/nginx/sites-available/sitename.conf /etc/nginx/sites-enabled
service nginx restart # 重啟nginx
** 3. uwsgi的配置 **
依次執(zhí)行如下命令:
cd /etc/uwsgi/apps-vailable
touch myapp.ini # 新建一個配置文件。必須以ini為結尾
vim myapp.ini # 編輯新建的配置文件
并輸入以下內(nèi)容:
[uwsgi]
master = true
chdir = /home/web-sites/ProjectName # 項目目錄
processes = 4 # 進程數(shù)
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建立一個軟連接,執(zhí)行命令如下:
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時出現(xiàn)以下錯誤:
Mon Aug 8 17:14:34 2016 - bind(): Permission denied [core/socket.c line 185]
解決方法為:
更改項目的最上層父目錄的權限為755或以上
- 通過nginx訪問出現(xiàn)如下錯誤:
Mon Aug 8 18:13:40 2016 - -- unavailable modifier requested: 0 --
解決方法為:
sudo apt-get install uwsgi-plugin-python