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. 所有靜態資源都應該載入良好。例如,app2 中的資源/js/sample.js應從位置請求/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;
          }
     }
}

該配置僅修復了第一點,但我正在努力尋找上述其他兩點的解決方案。我正在尋找一個乾淨的解決方案,只是要提到我會盡量避免if語句或sub_filter模組:)

相關內容