我想運行nginx的Django的我遵循了這一instructions和的Django nginx的uwsgi壞網關502
的/ etc/nginx的/網站可用/ cartoview_one
upstream django {
server unix:///root/cartoview_project/mysite.sock; # for a file socket }
server {
listen 80;
server_name xx.xx.xx.xx;
charset utf-8;
# max upload size
client_max_body_size 2048M; # adjust to taste
# Django media
location /media {
alias /root/cartoview_project/uploaded;
}
location /static {
alias /root/cartoview_project/static;
}
location/{
uwsgi_pass django;
include /root/cartoview_project/uwsgi_params; # the uwsgi_params file you installed
}
}
然後創建符號鏈接使用:
sudo ln -s /etc/nginx/sites-available/cartoview_one /etc/nginx/sites-enabled
並在項目文件夾mysite_uwsgi.ini
:
[uwsgi]
project = cartoview_project
chdir = /root/cartoview_project
module = %(project).wsgi:application
home = /root/env
master = true
processes = 10
socket = /root/cartoview_project/mysite.sock
chmod-socket = 666
vacuum = true
http-socket = 0.0.0.0:80
項目結構:
. |-- apps |-- cartoview_project | |-- __init__.py | |-- __init__.pyc | |-- local_settings.py | |-- local_settings.pyc | |-- local_settings.py.sample | |-- settings.py | |-- settings.pyc | |-- urls.py | |-- wsgi.py | `-- wsgi.pyc |-- default_oauth_apps.json |-- initial_data.json |-- manage.py |-- mysite_uwsgi.ini `-- uwsgi_params
當我試着使用MYIP此消息訪問網站出現:
502網關錯誤
的nginx/1.10。 0(Ubuntu)
error.log中:
2017年2月6日9時46分41秒[暴] 6867#6867:* 1 connect()以 UNIX:///根/ cartoview_project/mysite的。 socks失敗(13: 權限被拒絕),同時連接到上游,客戶端: xx.xx.xxx.xxx,服務器:xxx.xxx.xxx.xxx,請求:「GET/HTTP/1.1」,上游: 「uwsgi :// UNIX:///root/cartoview_project/mysite.sock:」主持人: 「xxx.xxx.xxx.xxx」
更新:
我刪除http-socket
並運行以下命令/root/env/bin/uwsgi --ini mysite_uwsgi.ini
和mysite.sock
出現在項目中,然後重新啓動nginx,但沒有任何更改。
:~/cartoview_project# stat mysite.sock
File: 'mysite.sock'
Size: 0 Blocks: 0 IO Block: 4096 socket
Device: 802h/2050d Inode: 17172079 Links: 1
Access: (0666/srw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-02-06 10:44:56.188168371 +0100
Modify: 2017-02-06 10:44:56.188168371 +0100
Change: 2017-02-06 10:44:56.188168371 +0100
Birth: -
機:VPS(Ubuntu的16.04)用戶:根
解決: 通過改變include /root/cartoview_project/uwsgi_params
到include /etc/nginx/uwsgi_params;
您可以使用此命令在uwsgi uwsgi --http 0.0.0.0:8134 --wsgi-file UniservedWebsite/wsgi.py&'生產後臺運行您的應用程序,並將您的nginx引用到'0.0.0.0: 8134'並添加'http-timeout' –