早上为文件服务器新加了一个 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 的小写,问题也解决