考慮以下nginx的配置文件:nginx的響應「301永久移動」
server {
listen 443;
ssl on;
ssl_certificate /etc/tls/cert.pem;
ssl_certificate_key /etc/tls/key.pem;
location/{
proxy_pass http://api.default.svc.cluster.local;
}
}
所有443的傳入TCP請求應該重定向到api.default.svc.cluster.local:80
運行我的服務器(這是一個節點REST的API BTW)。這工作正常,我可以curl https://<nginx-IP>/
nginx並得到正確的答覆,如預期。
現在,我想將位置從/
更改爲/api
,因此我可以觸發curl https://<nginx-IP>/api
以獲得與以前相同的響應。
1.嘗試
所以我改變位置線在配置到:
location /api {
不幸的是這是行不通的,而不是我得到一個錯誤Cannot GET /api
這是一個節點錯誤,顯然它被路由到api,但是仍然有些臭。
2.嘗試
它似乎在URI結尾的斜線是必需的,所以我把它添加到位置:
location /api/ {
現在事情發生了轉變。我不會像以前那樣得到同樣的錯誤,而是我會得到一個「301永久移動」。我怎樣才能修復我的nginx配置文件?
關於環境
我使用的是kubernetes部署中部署nginx的反向代理含的其他信息。介紹了配置。然後我使用kubernetes服務公開nginx。另外,我嘗試使用kubernetes入口來處理這種情況,使用相同的路由,但入口服務會以default backend - 404
消息作出響應。