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