【发布时间】:2020-09-25 13:58:03
【问题描述】:
我有两个应用程序在同一台机器上运行。一个在端口 8080 上侦听,另一个在 11180 上侦听。到端口 8080 上的应用程序的 SSL 连接有效,但我无法设置另一个。
为了将每个应用程序的请求标题分开,一个在https://example.com 可用,另一个在https://example.com/v2 可用
正如我所说,转到 https://example.com 可以按预期工作,但转到 https://example.com/v2 会提供正确的 html 文件,但会连接到与转到 https://example.com 相同的服务器
我真的不知道我在用 nginx 做什么,但我的配置看起来像这样。
server {
listen 443 ssl;
location / {
proxy_pass http://127.0.0.1:8080;
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 /v2/ {
proxy_pass http://127.0.0.1:11180/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
location /socket.io {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
#proxy_redirect off;
}
}
值得一提的是,第一个app监听8080,socket io监听8081,第二个app,一切监听11180
提前致谢
【问题讨论】:
-
“去
https://example.com/v2提供正确的html 文件但连接到与去https://example.com相同的服务器”是什么意思?您获得了正确的索引文件,但所有资产请求都转到第一个应用程序? -
是的,提供了正确的 index.html(以及所有部分),但所有请求都转到第一个节点进程。我相信这与 /socket.io 位置有关,但不确定该怎么做
-
如何创建套接字实例?就像
io()? -
不,我在两个应用程序中都使用不带参数的 io.connect()。此行位于名为 services.js 的文件中(用于 angular js),我认为提供了不正确的文件,从而导致连接错误。