关于反代的 location 中 uri 有 https 的问题

212 天前
 newtonMiku

RT,最近在香港的机器上做 GitHub 和 mikan 的反代,方便家里的设备在无代理情况下只需要增加一个前缀即可访问这些服务

    location ~ /^(?:https?:\/\/)?mikanani\.me(.*) {
        # 匹配到 URI 路径中含有"https://mikanani.me"的情况
        proxy_ssl_server_name on;
        proxy_pass 'https://mikanani.me/$1';
        sub_filter 'mikanani.me' $my_filter;
        sub_filter_once off;

        # Check if the request is for RSS
        add_header X-Request-URL https://mikanani.me$request_uri;
    }

正常的如果是 location /的话直接改对应的域名即可,但是想一个域名实现对好几个站的反代,(假设我的域名是 abc.com) 我访问 abc.com/abc 和访问 abc.com/https://mikanani.me/abc,两者都应该反代到 https://mikanani.me/abc ,求问该如何实现

1306 次点击
所在节点    NGINX
7 条回复
mohumohu
212 天前
用 caddy 会简单很多。
LinePro
212 天前
说个题外话,mikan 有官方的反代
https://mikanime.tv/
newtonMiku
212 天前
@LinePro 好吧,那 GitHub 呢,主要是想研究下 nginx 能不能实现这种路径带完整连接的
ysc3839
211 天前
不建议用字符串替换的方案,实际情况很复杂,总会出现一些问题的。
内网设备无代理访问的话,可以考虑用 sniproxy 。
newtonMiku
211 天前
@ysc3839 不是啊,类似于 ghproxy 这种的,在 GitHub 的链接前加个前缀即可实现对 GitHub 资源的代理就行啊
ysc3839
211 天前
@newtonMiku 你发的配置文件里不是有用到 sub_filter 吗?这个就是字符串替换。
newtonMiku
211 天前
@ysc3839 #6 问题是我这个带原本 https 的匹配不上,不知道是写的正则有问题还是怎么,他只会匹配 location /的

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

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

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

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

© 2021 V2EX