我有一個NGINX配置文件,以服務與靜態文件和通過開發服務器的網站。NGINX意外的行爲與位置指令和proxy_pass
靜態 - >http://localhost:8080
開發的Web服務器 - >http://localhost:8080/dev
還有其他幾個我綁定到不同的位置,指令服務。
這裏是對配置文件的剪切。
...
upstream qgis {
server qgis-spcluster_server:80;
}
...
server {
listen 8080;
server_name localhost;
location/{
root /usr/share/nginx/html/build;
index index.html index.htm;
auth_basic "Zugangskontrolle";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /dev/ {
proxy_pass http://web_app/;
auth_basic "Zugangskontrolle";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /static/ {
proxy_pass http://web_app/static/;
}
location /qgis/ {
proxy_pass http://qgis/;
}
location /apex/ {
proxy_pass http://apex/apex/;
auth_basic "off";
}
...
一切工作正常,直到我打開URL來獲取靜態文件。之後,所有其他URL都會導致靜態文件。
- http://localhost:8080/apex - >頂點服務
- http://localhost:8080 - >靜態網站
- http://localhost:8080/apex - >靜態網站
對我來說,一切看起來不錯,但確實是一件不正常。
Basic_Auth會產生另一個意外的行爲。
- http://localhost:8080 - >基本身份驗證 - >成功 - >靜態網站
- http://localhost:8080/apex - >基本身份驗證 - >這是不可能那麼在當下擺脫彈出
的我有點無知怎麼解決這個問題。
這聽起來對我有效。你有什麼想法,爲什麼nginx要求我爲apex端點輸入用戶名和密碼?這隻發生在我用靜態網站打開URL之後。這可能與我的第一個問題有關嗎? – Sceada
我認爲這是相同的問題。如果您仍然有問題,請提供更多詳細信息。謝謝。 – mononoke
讓我測試一些東西。我有這樣的感覺,也許我正在使用的服務人員導致了一些問題。如果我輸入http:// localhost:8080/apex /我仍然在靜態網站上。 – Sceada