2017-03-21 5 views
0

nginx 서버 뒤에 황제 모드 (메인 앱 + websocket 용)로 2 명의 vassals를 실행하는 데 문제가 있습니다. 모든 것이 잘 돌아가고있는 것 같지만 모든 websocket 요청은 502 오류 게이트웨이를 반환합니다. websocket 앱은 django-websocket-redis입니다. 내가 잘못한 어떤 생각?황제 모드에서 여러 개의 uwsgi vassals (웹 소켓 포함)로 nginx를 구성하려면 어떻게해야합니까?

/etc/uwsgi/vassals/dashdb_websocket.ini으로 신출내기

exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals/ --logto /var/log/uwsgi.log 

에서 실행 :

# 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으로 :

# 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 

과의 nginx 설정 :

로그에 03,713,210

오류 :

2017/03/20 23:27:51 [error] 3586#3586: *2759 upstream prematurely closed connection while reading response header from upstream, client: 
10.31.32.22, server: MY_DOMAIN...com, request: "GET /ws/builds?subscribe-broadcast&echo HTTP/1.1", upstream: "http://unix:/var/run/uwsgi/dashdb_ws.sock:/ws/builds?subscribe-broadcast&echo", host: "MY_DOMAIN...com" 

답변

0

는 내가 웹 소켓에

http-socket = /var/run/uwsgi/dashdb_ws.sock 

대신

socket = /var/run/uwsgi/dashdb_ws.sock 

을 설정하는 데 필요한 uwsgi 설정 INI