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 的小写,问题也解决

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