如何使用Nginx反向代理来隐藏后端URL / URI

我们公司开发了一个新的SaaS解决scheme,供经销商和他们的客户使用。 对于我们的经销商的客户,如果解决scheme是品牌的,就像经销商自己的软件应用程序一样。 这是完全执行1个东西的URL。

我做了很多研究如何隐藏一个URL / URI和反向代理似乎是最好的解决scheme。 我读了一些关于不同的软件应用程序,我可以使用它来构build一个反向代理,Nginx似乎是完美的工作。

我安装了一台全新的CentOS服务器,并在其上安装了Nginx。 这很容易(即使对我来说,Linix noob)。 经过一番与configuration文件struggeling我发现如何configurationNginx作为反向代理。

现在,当我浏览到我的代理IP(铁192.168.1.100 / SATA)我看到SaaS解决scheme,有另一个IP。 在地址栏中,我看到了反向代理IP,非常希望!

当我点击SaaS解决scheme中的链接或button后,地址栏中的IP就变成了SaaS解决scheme的真实IP。

我读了这个 , 这个 , 这个和更多的话题,但我不能得到它的工作。

我的configuration“位置”部分看起来像这样的atm:

location /SaaS { proxy_pass http://192.168.1.200/login/; } 

只要把它改成这个(我在互联网上find的正确的configuration在多篇文章中)

 location /SaaS { proxy_pass http://192.168.1.200/login; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; include /etc/nginx/proxy_params; } 

我收到错误“找不到您正在查找的网页”。 来自Nginx。 我错了什么?

您需要使用查找/replace插件或更新您的SaaS应用程序中的每个链接来使用nginx ip(dns将被强烈推荐)

https://www.nginx.com/resources/wiki/modules/substitutions/

用代理ipreplace后端ip,通常可以像你一样重写$ host,但似乎你的链接不使用variables来设置它们的url。

例:

 server { listen 80; listen [::]:80; server_name sub-test.jacobdevans.com; root /var/www/html/test; location / { sub_filter 'abc-test.jacobdevans.com' 'sub-test.jacobdevans.com'; sub_filter_once off; } } server { listen 80; listen [::]:80; server_name abc-test.jacobdevans.com; root /var/www/html/test; location / { sub_filter '123-test.jacobdevans.com' 'abc-test.jacobdevans.com'; sub_filter_once off; } } server { listen 80; listen [::]:80; server_name 123-test.jacobdevans.com; root /var/www/html/test; location / { sub_filter 'sub-test.jacobdevans.com' '123-test.jacobdevans.com'; sub_filter_once off; } } 

http://sub-test.jacobdevans.com/