【问题标题】:Getting part of nginx url as "variable"?将 nginx url 的一部分作为“变量”?
【发布时间】:2014-02-07 13:01:22
【问题描述】:

我目前在我的nginx 配置中有这条规则:

location /tun {
proxy_pass         http://url.domain.com/mp3.mp3;
  proxy_set_header  X-Real-IP  $remote_addr;
}

我用于私人项目中的隧道。但是,我想让它动态化。

我正在寻找这样的东西:

location /tun/$URL$ {
proxy_pass         $URL$;
  proxy_set_header  X-Real-IP  $remote_addr;
}

所以用户可以像这样输入自己的网址。

我知道其中存在安全漏洞,但我真的很想看到这种情况发生!

提前致谢!

【问题讨论】:

    标签: configuration nginx config


    【解决方案1】:

    试试这个:

    resolver 8.8.8.8;
    location ~* ^/tun/(.+)$ {
        proxy_pass http://$1;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
    

    【讨论】:

    • 给我一个500 internal server 错误。不过我会尝试使用它,谢谢!
    • 添加 http://$1。如果您要代理到外部域,包括解析器 8.8.8.8;
    • 请注意,如果您的 URL 包含空格,这将失败。 NGINX 有一个未确认的错误,其中传入的 /url%20with%20spaces 将导致 $1 = /url with spaces 并且这是以 /url with spaces 的形式未经编码传递给 proxy_pass 的,这将永远无法工作。
    猜你喜欢
    • 2020-01-27
    • 2019-01-19
    • 1970-01-01
    • 2017-11-12
    • 2019-02-05
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多