来自请求URL的Nginx反向代理目的地

时间:2018-01-10 21:21:35

标签: nginx nginx-reverse-proxy

我在配置Nginx时遇到问题:

  • 来自请求网址的目标服务器的反向代理
  • 端口可以是默认值(80),但如果这也可以来自请求网址,那就太棒了
  • 我想要调用http://nginxserver/destinationserver然后
  • 的行为

nginx将调用destinationserver(取自请求网址而不是在该位置修复)

我尝试过类似的东西,但它不起作用

{{1}}

我需要上述行为,因为我们有一个来自一个服务器的静态VPN,我可以拥有nginx和其他一些远程设备。这些设备中的每一个都具有网络服务器,该服务器从默认端口80显示设备状态。问题是只有从服务器(具有VPN)内部,我们才能到达每个远程设备,因此我正在尝试使用Nginx来启用反向代理以从服务器外部访问设备。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

<强>解决方案:

这是我发现的解决方案:

location  ~ "/go/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(.+)$" {
    proxy_pass http://$1:80$2;  
    sub_filter "<head>" "<head><base href=\"${scheme}://${host}/go/$1/\">";     
    sub_filter_once off;    
    sub_filter_types application/json application/x-javascript;     
    sub_filter '"/flash/' '"/go/$1/flash/';     
    sub_filter '"/rom/' '"/go/$1/rom/'; 
}

例如,我可以使用以下网址:http://myproxyserver/go/192.168.0.100/ 我从192.168.0.100得到响应抛出nginx反向代理。