nginx添加一個新的location 後報404錯誤,匹配路徑大小寫導致的404問題

早上爲文件服務器新加了一個 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 的小寫,問題也解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章