Nginx 如何实现这样的通用反代?

2022-04-22 16:37:37 +08:00
 Chism
http(s)://myDomain/targetDomain/params
反代
http(s)://targetDomain/params
其中第二个 targetDomain 会跟着第一个 targetDomain 而改变,http/https 协议也跟随前者而改变
或者是否已经有现成的网址?
2617 次点击
所在节点    NGINX
8 条回复
keepeye
2022-04-22 16:46:49 +08:00
首先协议没有变化之说,http 和 https 是两个 server 块,你要分别在里面写规则

规则试试看下面这种,我也不知道行不行

location ~ /(.*)/(.*) {
resolver 8.8.8.8;
set $myhost $1;
proxy_pass http://$myhost/$2;
}
codefever
2022-04-22 16:53:46 +08:00
@keepeye 我看了一下,应该没问题
qiujun
2022-04-22 17:16:29 +08:00
iqoo
2022-04-22 17:38:15 +08:00
建议加上 upstream 配置 keepalive ,不然每次访问都要建立连接,性能开销超大。
FanError
2022-04-22 17:47:00 +08:00
顺便在这问个问题,nginx 反代的目标是 https 时,直接报错。。

当时测试反代百度,直接就报错了。。是不是反代 https 网站时,还需要特殊设置,或者有些目标网站特殊设置后,就不能反代了?
Hanada
2022-04-22 21:44:15 +08:00
@FanError 要传 sni ,proxy_ssl_server_name 和 proxy_ssl_name
moeik
2022-04-22 21:50:39 +08:00
@FanError 你反代的地址设置为 https://ip:443 这样应该就没有问题
ophark
2022-04-24 12:50:58 +08:00
proxy_pass http://$myhost/$2;
改成
proxy_pass $scheme://$myhost/$2;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX