【问题标题】:Nginx and Django-socketio gives address already in use errorNginx 和 Django-socketio 给出地址已经在使用错误
【发布时间】:2014-03-19 00:53:07
【问题描述】:

我正在尝试使用 uwsgi 和 nginx 设置我的 django-socketio,当我运行时 sudo uwsgi --ini uwsgi.ini

我收到一条错误消息,提示地址已在使用中。 我知道问题是什么,我认为他们的问题是当我运行 sudo uwsgi --ini uwsgi.ini 时,它在端口 80 上创建了一个 SocketIOServer,并且由于我的 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;
        }
    }

【问题讨论】:

    标签: nginx amazon-ec2 uwsgi socket.io django-socketio


    【解决方案1】:

    不要在 wsgi 文件中创建 socketio 服务器,而是使用内置的 runserver_socketio 并使用 supervisor 在端口 9000 上启动它,然后让 nginx 代理对 /socket.io/ 的任何请求到端口 9000

    【讨论】:

      【解决方案2】:

      我最近在看django-socketio,我记得我只让socketio监听843端口。 有什么理由需要同时收听 80 和 843?

      在开发中,你可以添加开放的843端口,看看能不能解决你的问题。

      【讨论】:

        猜你喜欢
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-28
        • 1970-01-01
        • 2018-05-20
        • 1970-01-01
        • 2023-01-25
        相关资源
        最近更新 更多