配置默认站点与两个Location的Nginx服务器出现404错误问题排查
配置默认站点与两个Location的Nginx服务器出现404错误问题排查
兄弟,我一眼就瞅出你配置里的问题啦——你把root指令在location里的用法搞错了!
当Nginx处理location /pierwsza这类路径时,如果用root /var/www/pierwsza/,它会把请求的路径拼到root指定的目录后面。也就是说,你访问https://acme.com/pierwsza的时候,Nginx实际在找/var/www/pierwsza/pierwsza/index.html,而不是你以为的/var/www/pierwsza/index.html,这直接导致了404错误,/druga的问题也是一模一样的逻辑。
给你两种靠谱的解决方案:
方案一:调整root路径
把两个location里的root改成/var/www/,这样Nginx拼接后的路径就正好对应你存放文件的目录了。修改后的配置片段如下:
location /pierwsza { root /var/www/; index index.html; } location /druga { root /var/www/; index index.html; }
方案二:用alias指令替代root
alias指令会直接把location的路径替换成指定目录,不会做路径拼接,更适合这种场景。修改后的配置片段如下:
location /pierwsza { alias /var/www/pierwsza/; index index.html; } location /druga { alias /var/www/druga/; index index.html; }
另外提醒下,你把index index.html给注释掉了,最好打开它,确保Nginx能自动识别默认索引文件。修改完配置后,记得先执行sudo nginx -t检查配置是否合法,没问题的话再执行sudo systemctl reload nginx重新加载配置,这样应该就能正常访问啦!
备注:内容来源于stack exchange,提问作者shadow82
相关产品推荐
相关产品推荐

