Nginx 代理服务器 - 根据 URL 中的路径映射到单独的网站

Nginx 代理服务器 - 根据 URL 中的路径映射到单独的网站

我正在尝试设置代理服务器,以便

proxy-server.com/app1  -->  website1.com
proxy-server.com/app2  -->  website2.com
  1. 不应重定向到实际的后端应用程序。用户只能看到proxy-server.com/app[1/2]URL。
  2. 所有静态资源都应能正常加载。例如,/js/sample.jsapp2 中的资源应从位置请求/app2/js/sample.js
  3. 当我执行操作(例如提交表单或导航到 app2 中的另一个页面)时,请求应该添加到前面,/app2以便代理到正确的地址
http {
  upstream webapp1 {
      server website1.com:443;
    }

    upstream webapp2 {
      server website2.com:443;
    }


     server {
          listen 80;
          listen 443 ssl;
          server_name   proxy-server.com;

          # certificate section

          location /app1 {
            proxy_pass https://webapp1/;
            proxy_set_header Host            website1.com;
          }

          location /app2 {
            proxy_pass https://webapp2/;
            proxy_set_header Host            website1.com;
          }
     }
}

该配置仅修复了第 1 点,但我正在努力寻找上述其他两点的解决方案。我正在寻找一个干净的解决方案,只是提到我会尽量避免if使用语句或sub_filter模块 :)

相关内容