Azure Linux服务器Nginx包含文件重载不生效问题求助
先验证配置语法
修改完重定向文件后,必须先执行nginx -t检查配置语法是否合法。你提供的示例规则里https:example.com少了双斜杠(正确格式是https://example.com),这种语法错误会导致Nginx重载失败,继续使用旧配置。如果命令返回错误,根据提示修正nginx_redirections.txt里的规则。检查文件权限
Nginx运行用户(通常是www-data或nginx)需要能读取/home/site/nginx_redirections.txt。执行ls -l /home/site/nginx_redirections.txt查看权限,确保文件权限至少是644,且所属用户组包含Nginx运行用户。如果权限不足,执行:chmod 644 /home/site/nginx_redirections.txt chgrp www-data /home/site/nginx_redirections.txt确保重载命令执行成功
不要只依赖service nginx reload,试试systemctl reload nginx(适用于systemd系统)。如果重载无效,直接重启Nginx:systemctl restart nginx,强制加载新配置。执行后用systemctl status nginx确认服务正常运行,没有报错。排查location匹配优先级
Nginx的location匹配有优先级,如果你在default配置里有其他更通用的location(比如location /),且放在include语句之前,可能会覆盖新的重定向规则。把include /home/site/nginx_redirections.txt;放在所有通用location规则的前面,让更具体的重定向规则优先匹配。清除缓存再测试
301是永久重定向,浏览器会缓存旧结果。测试时用浏览器无痕模式,或者用curl -I https://yourdomain.com/one查看响应头,确认新的重定向地址是否生效。
内容的提问来源于stack exchange,提问作者reshma

