用于HTTPS流量的Nginx反向代理(通过uWSGI套接字)和websockets

时间:2017-12-18 18:28:42

标签: sockets nginx flask uwsgi

我将Nginx设置为在uWSGI上运行的Flask应用程序的反向代理。配置如下:

server {
  listen 80;
  server_name subdomain.app.org;

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/home/ubuntu/app/myapp.sock;
  }
}

此外,我想访问在端口3232上运行在同一台机器上的websocket。所以我将配置更改为:

server {
  listen 80;
  server_name subdomain.app.org;

  location /ws/ {
    proxy_pass http://127.0.0.1:3232;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_read_timeout 86400;
  }

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/home/ubuntu/app/myapp.sock;
  }
}

当我尝试使用wscat -c ws://subdomain.app.org/ws从远程访问套接字时,我收到error: Error: unexpected server response (301)

当我将websocket和Flask应用程序的位置设置为/时,一切正常,但是我再也无法访问我的Flask应用程序了。

有什么想法吗?我不知道在我之前有很多人问过这个问题,但是没有与运行的uWSGI套接字有关。我花了几个小时阅读stackoverflow帖子,但没有找到合适的东西。谢谢你的帮助。

0 个答案:

没有答案