我在nginx服务器后面以emperor模式运行2个附庸(对于主app + websocket)时遇到问题。一切似乎运行良好,但所有websocket请求返回错误502坏网关。 websocket应用程序正在运行django-websocket-redis。我出错的任何想法?
从新贵开始
int value1 = 1;
int value2 = 1;
int value3 = 10;
bool maxIs1 = True;
bool maxIs2 = False;
bool maxIs3 = True;
bool result = compareValues(); //false
使用exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals/ --logto /var/log/uwsgi.log
:
/etc/uwsgi/vassals/dashdb_websocket.ini
使用# dashdb_websocket.ini file
[uwsgi]
umask = 002
home = /opt/dashdb/venv/dashdb-3.5
plugin = python35
chdir = /opt/dashdb
master = true
no-orphans = true
die-on-term = true
memory-report = true
env = DJANGO_SETTINGS_MODULE=dashdb.settings.opener
socket = /var/run/uwsgi/dashdb_ws.sock
pythonpath = /opt/dashdb
module = dashdb.wsgi_websocket
threads = 1
processes = 1
http-websockets = true
gevent = 1000
# Log file location
daemonize = /var/log/uwsgi/dashdb_websocket.log
:
/etc/uwsgi/vassals/dashdb.ini
和nginx config:
# dashdb.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /opt/%n
# Django's wsgi file
module = dashdb.wsgi
# the virtualenv (full path)
home = /opt/dashdb/venv/%n-3.5
plugin = python35
# settings location
env = DJANGO_SETTINGS_MODULE=dashdb.settings.opener
# Process-related settings
# master
master = true
# maximum number of worker processes
processes = 3
# the socket (use the full path to be safe)
socket = /var/run/uwsgi/%n.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit
vacuum = true
# Log file location
daemonize = /var/log/uwsgi/%n.log
日志中的错误:
upstream django_dashdb {
server unix:/var/run/uwsgi/dashdb.sock;
}
server {
listen *:80;
server_name MY_DOMAIN;
server_tokens off;
root /opt/dashdb;
charset utf-8;
# Increase this if you want to upload large attachments
# Or if you want to accept large git objects over http
client_max_body_size 250m;
# Individual nginx logs for this GitLab vhost
access_log /var/log/dashdb/dashdb_access.log;
error_log /var/log/dashdb/dashdb_error.log;
# Django media
location /media {
alias /opt/dashdb/media;
}
# Django static
location /static {
alias /opt/dashdb/static;
}
location / {
uwsgi_read_timeout 180;
uwsgi_pass django_dashdb;
include /opt/dashdb/uwsgi_params;
}
location /ws/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://unix:/var/run/uwsgi/dashdb_ws.sock;
}
error_page 502 /502.html;
}
答案 0 :(得分:0)
我需要设置
http-socket = /var/run/uwsgi/dashdb_ws.sock
而不是
socket = /var/run/uwsgi/dashdb_ws.sock
在websocket uwsgi config ini中