1
jifengg 2023-03-27 13:18:31 +08:00
我的建议是:每个网站通过不同的域名映射。nginx 里,只需要每个域名单独配置一个 server 即可。
|
2
mingl0280 OP @jifengg 我之前用这个方案,但是好像不能处理服务器发送的 301 跳转到 https 这个问题。
|
3
mingl0280 OP @jifengg 我之前试过这个方案,但是好像不能处理服务器发送的 301 跳转到 https 这个问题。
|
4
zhanlanhuizhang 2023-03-27 14:34:24 +08:00
用 stream 模块试试。
|
5
zhanlanhuizhang 2023-03-27 14:34:59 +08:00
同时,用 1 楼的方案:每个网站通过不同的域名映射
|
6
jifengg 2023-03-27 16:36:23 +08:00
@mingl0280 “301 到 https”是必要的吗?你问题里不是说不使用 https 么?强制跳转 https 是哪里配置的就在哪里关掉了
|
7
mingl0280 OP @jifengg 服务器那边网站返回 301 不是我能控制的……301 内容是一个完整的 location ,这个肯定得 nginx 改 header ,不然肯定不工作。
|
8
jifengg 2023-03-28 08:48:28 +08:00
@mingl0280 那就搞清楚服务器是因为什么而 301 ,是因为访问的是 80 端口不是 443 端口,要求强制跳转 https ?还是访问什么页面没权限导致 301 到其他页面?
如果是 80 跳 443 ,那么你可以考虑 proxy_pass 的时候用 https 。 如果是业务跳转,那就需要用 proxy_redirect 替换一下跳转地址。比如 proxy_redirect https://1.2.3.4/ /; 表示,如果代理要求 301 到“https://1.2.3.4/**”,那么替换成“/**”后放到 location header 里给到用户,用户浏览器就能够正常跳转了.用法你可以自己再 google |