Nginx
反向代理用子域替換文件夾?
我正在嘗試通過 Nginx 反向代理在外部公開 Jenkins 建構狀態。我已經創建了一個 subdomain
buildstatus.ourcompany.com
,但我不希望 urlbuildstatus.ourcompany.com/buildstatus/icon?...
如此我正在嘗試以下,沒有運氣:server { listen 80; server_name buildstatus.company.com; location / { proxy_pass $scheme://192.168.1.5:8080/buildStatus/; } }
當我訪問時,這會導致以下錯誤
buildstatus.companyname.com/icon?job=projectname
:HTTP ERROR 404 Not Found URI: /buildStatus/ STATUS: 404 MESSAGE: Not Found SERVLET: Stapler
我已確認訪問
192.168.1.5/buildStatus/icon?job=projectname
按預期進行。我嘗試了其他幾件事,包括一個使用
url_rewrite
的,但只是得到了其他錯誤。我怎樣才能
buildstatus.companyname.com/icon?job=projectname
產生與 相同的結果192.168.1.5/buildStatus/icon?job=projectname
?
您的配置將所有請求發送到
$scheme://192.168.1.5:8080/buildStatus/
URL。你需要使用
proxy_pass $scheme://192.168.1.5:8080/buildStatus$request_uri;
將原始 URI 添加到上游請求。