问题描述
我正在参与一个项目,该项目在 SSL 和 Cloudflare 上存在一些套接字问题……我知道……我已经阅读了大约 50 篇不同的堆栈溢出文章和 200 篇博客文章,试图解决这个问题。该项目在我的本地开发服务器/计算机上运行得很好...
我认为我在正确的轨道上 - 但如果可以的话,可以使用一些帮助/指示。
首先,我觉得 /socket-io/ proxy_pass 在端口 6379 上很奇怪,与 redis 相同......也许应该是?当它设置为 6379 时,套接字连接将无法连接 - 无论是否启用 Cloudflare(我暂停了 cloudflare 以测试这一点)。
我通读了快速服务器,发现套接字服务器似乎在端口 4000 处链接到快速服务器...所以我将 /socket-io/ 的 proxy_pass 更改为端口 4000 并重新连接。这适用于 Cloudflare 暂停/运行......所以也许它毕竟不是 cloudflare。尽管如此,即使它说套接字已在浏览器中重新连接,也没有任何工作。
我将首先分享我的 Nginx 配置 - 请告诉我您还需要查看什么。感谢您抽出宝贵时间帮助我/为我指明正确的方向!我真的很感激学习这些东西。
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name dev-app.myapp.com;
location / {
root /var/www/myapp_frontend/build/;
try_files $uri $uri/ /index.html;
#proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
location /api/ {
proxy_pass http://localhost:4000/;
include /etc/Nginx/proxy_params;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /socket.io/ {
proxy_pass http://localhost:6379;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_read_timeout 86400;
}
location ~ \.PHP$ {
include snippets/fastcgi-PHP.conf;
fastcgi_pass unix:/run/PHP/PHP7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
ssl_certificate /etc/letsencrypt/live/dev-app.myapp.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/dev-app.myapp.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-Nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = dev-app.myapp.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name dev-app.myapp.com;
listen 80 default_server;
listen [::]:80 default_server;
return 404; # managed by Certbot
}
Edit-1 我确实看到 cloudflare 需要某些端口...我认为这些端口仅指初始侦听端口(例如上面的 443)是错误的,因为 proxy_pass 端口都使用 localhost?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)