Nginx и Django-socketio сообщают об ошибке уже используемого адреса
Я пытаюсь настроить мои django-socketio с помощью uwsgi и nginx, и когда я запускаю sudo uwsgi --ini uwsgi.ini
Я получил сообщение о том, что адрес уже используется. Я знаю, в чем проблема, я думаю, что проблема в том, что когда я запускаю sudo uwsgi --ini uwsgi.ini, он создает SocketIOServer на порту 80, и, так как мой nginx также запущен, он также прослушивает порт 80. Поэтому они конфликты, но я не знаю, как их решить.
Может ли кто-нибудь помочь.
Мой файл wsgi.py выглядит так:
import os
PORT = 80
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
from socketio import SocketIOServer
print 'Listening on port %s and on port 843 (flash policy server)' % PORT
SocketIOServer(('', PORT), application, resource="socket.io").serve_forever()
И мой файл nginx выглядит так:
upstream django {
server unix:///tmp/uwsgi.sock;
}
server {
listen 80;
charset utf-8;
error_log /home/ubuntu/nginxerror.log ;
location /static {
alias /home/ubuntu/project/static;
}
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
}
2 ответа
Вместо создания сервера socketio в файле wsgi, используйте встроенный runserver_socketio и запустите его на порту 9000 с помощью supervisor, затем прокси-сервер nginx отправляет любые запросы на /socket.io/ на порт 9000
Я недавно смотрел на django-socketio, я помню, что позволял socketio прослушивать порт 843. Есть ли причина, по которой вам нужно слушать как 80, так и 843?
В стадии разработки вы можете добавить открытый порт 843 и посмотреть, решит ли это вашу проблему.