我在websockets中有一个带有angular和django的项目,它在Linux上可以很好地工作,当我将它部署到也是Linux的Amazon EC2上并且在Linux上也进行了同样的操作时,我在其中附加了服务器的屏幕截图我尝试连接到服务器 this.globals.socket = new WebSocket('ws)时,Amazon EC2中的django运行正常,server screenshot,这是一个有角度的应用程序的客户端://mydomain.com.com/stocks'),我收到此错误与'ws://mydomain.com.com/stocks'的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:404 。我是否必须在Amazon EC2服务器的nginx.conf中配置某些内容?还是必须在服务器中启用其他功能?任何帮助或线索将不胜感激。非常感谢。
答案 0 :(得分:0)
您正在本地主机(127.0.0.1:8000)上运行服务器。无法从外部访问。您必须在公共IP上运行它,或配置代理以将请求路由到本地服务器。同样不要忘记通过EC2管理界面打开通向世界的端口。
还要注意,您不应在生产环境中通过./manage.py runserver
运行服务器。您应该使用应用程序WSGI服务器(例如Gunicorn)和网络服务器(例如Nginx)。签出this good tutorial。基本上,您运行绑定到unix套接字的Gunicorn,并运行代理(proxy_pass
)对unix套接字的所有请求的Nginx。