嘟嘟社区

【技术请教】nginx 反代正则应该怎么写啊


本帖最后由 meta 于 2022-2-15 09:10 编辑

我想实现访问 :

http://abc.com/abc1212.txt
http://abc.com/abc3434.txt
http://abc.com/abc2626.txt

反代到 :

http://def.com/abc1212.txt
http://def.com/abc3434.txt
http://def.com/abc3434.txt

就是后面是 abc 开头,结尾不定的资源,location 搞了半天都不行,特来请教

http://def.com/xxx 等其他资源不能反代出去,只限制 abc 开头的

你这个应该就是域名反代就可以。
server {
    listen       80;   
    server_name  abc.com;
    location / {
            proxy_pass http://def.com;
    }
}
不用判断是不是abc吧

Sing1e 发表于 2022-2-15 09:00
你这个应该就是域名反代就可以。
server {
    listen       80;   

不行,我没描述完,
http://def.com/xxx
不能让别人访问到

本帖最后由 Sing1e 于 2022-2-15 09:13 编辑

meta 发表于 2022-2-15 09:09
不行,我没描述完,
http://def.com/xxx
不能让别人访问到

def.com都不让人访问那你怎么反代过去?
矛盾了吧。
要不在def.com里写个abc.com的白名单。

Sing1e 发表于 2022-2-15 09:12
def.com都不让人访问那你怎么反代过去?
矛盾了吧。
要不在def.com里写个abc.com的白名单。 …

def.com 是内网的,不能让别人通过 abc.com/xxx 访问到

本帖最后由 摩卡 于 2022-2-15 09:28 编辑

location ^~ /abc {
  proxy_pass
}

摩卡 发表于 2022-2-15 09:26
location ^~ /abc {
  proxy_pass
}

这个是 /abc 开头的,怎么把这个传递给 proxy_pass 呢