nginx反向代理后面的服务器忽略URL中的相对路径

 拐久了_618 发布于 2023-01-04 15:14

我的头衔并不是最好的,我对网络的了解非常基础,对不起.

我想要实现的目标

我有一个在Archlinux上运行nginx的盒子箱,我用它作为我的家庭局域网的主要入口点从互联网(即我只能到达端口80和443的工作)通过反向代理设施使用不断变化的域名我无法控制,我们现在会打电话给home.net.

fanbox的端口80和443映射到home.net,这部分很容易.

我在防火墙后面有两个web服务器,web1.lan,web2.lan,web2ilo.lan.这两个应用程序都有各种应用程序(可能在不同的机器上具有相同的名称),可以通过标准URL直接在LAN上访问(名称作为示例给出,我无法控制内容):

http://web1.lan/phpAdmin/
http://web1.lan/gallery/
http://web2.lan/phpAdmin/
http://web2.lan/dlna/

...等等...

现在web2ilo.lan是一个特例.它是HP服务器web2.lan的带外管理Web界面.该特定网络服务器仅提供1个应用程序,因此只能通过其根URL访问:

http://web2ilo/login.html 

我的目标是通过home.net的子路径访问这些,如下所示:

http://home.net/web1/phpAdmin/
http://home.net/web1/gallery/
http://home.net/web2/phpAdmin/
http://home.net/web2/dlna/
http://home.net/web2ilo/login.html
我的问题

这几乎可以工作,但Web应用程序倾向于重写URL,以便在我登录后分别:

http://home.net/web1/phpAdmin/login.php
http://home.net/web2ilo/login.html

浏览器分别重定向到

http://home.net/phpAdmin/index.php
http://home.net/index.html 

请注意,相对子路径web1web2ilo已经消失了,逻辑上给了我404.

我的配置

到目前为止,我已经搜索了很多,我在nginx中尝试了很多选项而不太了解我在做什么.这是我的配置,重现了这个问题.为了清楚起见,我已经离开了SSL.

   server {
      listen       443 ssl;
      server_name  localhost;

      # SSL stuff left out for clarity 

      location / {
          root   /usr/share/nginx/html;
          index  index.html index.htm;
      }

      location /web1/ {
              proxy_set_header Host $host;
              proxy_redirect off;
              proxy_pass https://web1.lan/;
      }


      location /web2/ {
              proxy_set_header Host $host;
              proxy_redirect off;
              proxy_pass https://web2.lan/;
      }

      location /web2ilo/ {
              proxy_set_header Host $host;
              proxy_redirect off;
              proxy_pass https://web2ilo.lan/;
      }

  }
在第一个答案后

在第一个答案之后(谢谢!),我意识到我的设置远非常见,而且我可能会独自遇到麻烦.

那么在不触及前端端口和域/主机名的情况下访问防火墙后面的网络服务器会更好吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有