V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
t4st
V2EX  ›  问与答

关于配置 nginx 的反向代理获取其他服务器上的文件。

  •  
  •   t4st · 2013-09-29 11:49:33 +08:00 · 2787 次点击
    这是一个创建于 4106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于众所周知的原因,
    想要通过离岸的服务器用 nginx 反向代理达到获取墙外文件,
    但是配置总是失败。

    例如:
    访问 http://myserver/proxy/?url=http%3A%2F%2Fwww.anotherserver%2Ftest.css
    nginx 服务器反代 http://www.anotherserver/test.css 并返回给客户端。

    我是这样配置 nginx 的:

    location ~^/proxy/?url=(.*)$ {
    proxy_pass http://$1;
    proxy_redirect off;
    proxy_max_temp_file_size 0;
    }

    但是不起作用,请问应该如何修改?谢谢。
    9 条回复    1970-01-01 08:00:00 +08:00
    chenliang0571
        1
    chenliang0571  
       2013-09-29 12:14:16 +08:00   ❤️ 1
    log里面有错误吗?
    t4st
        2
    t4st  
    OP
       2013-09-29 12:23:51 +08:00
    @chenliang0571 没有哦,我反复刷新 access.log 和 error.log ,都是空的。客户端返回的是 404 错误。
    manhere
        3
    manhere  
       2013-09-29 12:28:13 +08:00   ❤️ 1
    记得location区里面是可以写 rewrite规则的:
    location / {
    rewrite "^/proxy/?url=(.+)$" http://$1 break;
    }
    shiny
        4
    shiny  
       2013-09-29 12:37:45 +08:00
    location 什么时候可以匹配 Query_String 了?捕获的字符串可以在下文里使用 $1?
    闻所未闻……
    chenliang0571
        5
    chenliang0571  
       2013-09-29 13:29:14 +08:00   ❤️ 1
    我知道这样应该可以。。

    http://myserver/test.css?url=www.anotherserver

    location / {
    proxy_pass http://$arg_url;
    }
    est
        6
    est  
       2013-09-29 13:40:37 +08:00   ❤️ 1
    ^/proxy/?url=(.*)$

    这个正则来看,你试试

    http://myserver/proxyurl=http://www.anotherserver/test.css
    dallaslu
        7
    dallaslu  
       2013-09-29 15:20:55 +08:00   ❤️ 1
    正则里面的问号是不是应该进行转义?譬如:

    ^/proxy/\?url=(.*)$
    rrfeng
        8
    rrfeng  
       2013-09-29 15:45:15 +08:00
    这不是正向代理了么……
    t4st
        9
    t4st  
    OP
       2013-09-29 16:01:50 +08:00
    搞定啦~感谢以上回答的各位!~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3247 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.