如何解决Nginx 在 socket.io 请求上返回 404
所以我在这一点上被这段代码困住了。无论我做什么,nginx 都不会让套接字连接发生。
我在后端使用了flask-socketio,在前端使用了Socket-IO。我在 gcp 上用 docker 运行它。 这里我附上了我的 Nginx.conf 文件。我从互联网上尝试了多种解决方案,但似乎都不起作用。
events { }
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# redirect www -> non-www
server {
server_name www.everytutee.com;
return 301 $scheme://everytutee.com$request_uri;
}
# redirect http -> https
server {
listen 80;
server_name everytutee.com;
return 301 https://everytutee.com$request_uri;
}
# read the ssl certificate / key when listening on https
server {
listen 443 ssl;
server_name everytutee.com;
ssl_certificate /etc/nginx/certs/certificate1.crt;
ssl_certificate_key /etc/nginx/certs/private.key;
root /usr/share/nginx/html;
index index.html;
server_name $SERVER_NAME;
access_log /var/log/nginx/data-access.log combined;
#add_header Access-Control-Allow-Origin *;
# serve the static files
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
# I don't usually include a static log
}
location ~ \.css {
include /etc/nginx/mime.types;
add_header Content-Type text/css;
try_files $uri =404;
expires 1y;
access_log off;
add_header Cache-Control "public";
}
location ~ \.js {
include /etc/nginx/mime.types;
add_header Content-Type application/x-javascript;
try_files $uri =404;
expires 1y;
access_log off;
add_header Cache-Control "public";
}
location ~ \.svg {
include /etc/nginx/mime.types;
add_header Content-Type image/svg+xml;
try_files $uri =404;
expires 1y;
access_log off;
add_header Cache-Control "public";
}
# Any route containing a file extension (e.g. /devicesfile.js)
location ~ ^.+\..+$ {
try_files $uri =404;
}
# Any route that doesn't have a file extension (e.g. /devices)
location / {
# try_files $uri $uri/ /index.html =404;
}
# fetch data from proxied server when /api is called
location /api {
proxy_pass http://backend:5000/api;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http://backend:5000/api $scheme://$http_host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
proxy_buffering off;
}
location /socket.io {
proxy_pass http://backend:5000/socket.io;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_redirect http://backend:5000/api $scheme://$http_host/;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 20d;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。