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 и посмотреть, решит ли это вашу проблему.

Другие вопросы по тегам