早上爲文件服務器新加了一個 localtion ,測試沒問題,可以成功的訪問到文件
然後發現一個奇怪的問題,我另外一個 location 居然報404了
配置如下,
location /asset/ {
proxy_pass http://asset;
#注意這裏的Header一定要帶到Minio,否則認證不通過
proxy_set_header Host $http_host;
client_body_buffer_size 10M;
client_max_body_size 10G;
proxy_buffers 1024 4k;
proxy_read_timeout 300;
}
location /qcJob/ {
proxy_pass http://qcJob;
# proxy_pass http://127.0.0.1:8081/api/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
location /qcc/ {
proxy_pass http://qcc;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
這 qcc之前都還是好好的,忽然就 404 了,百思不得其解。去掉新加的 asset 又沒問題了
研究了一上午終於發現問題原因,問題不在於我新加的 asset, 而是 qccJob 的問題,nginx似乎對大小寫有一些處理,如果匹配的路徑中有大小寫,似乎會截斷,就變成了 qc ,而 qc 的優先級 qcc的,就導致了這個問題。
解決方案,對 qcJob 添加大小寫的匹配
# ~ 表示區分大小寫的正則匹配
location ~ /qcJob/
這樣就解決了問題,或者將 qcJob 修改爲 qcjob 的小寫,問題也解決