启用SSL后NGINX仍从/usr/share/nginx/html加载资源问题求助
问题根因
请求未匹配到你配置的指定域名的虚拟主机,落到了Nginx默认虚拟主机处理,默认虚拟主机的根目录为/usr/share/nginx/html。对应修复方案如下:
- 修复80端口跳转配置语法错误:你提供的HTTP跳转配置中,
server_name my_domain_here www.my_domain_here行末尾缺少英文分号,会导致Nginx加载该配置段失败,无法识别对应的虚拟主机。修改为:server_name my_domain_here www.my_domain_here; - 验证配置合法性并重载生效:每次修改配置后执行命令
nginx -t校验配置语法,确认返回test is successful后,执行systemctl reload nginx重载配置生效。 - 清理遗留默认配置:检查
/etc/nginx/conf.d/目录下是否存在默认配置文件(如default.conf),若存在则删除或修改后缀为非.conf格式,避免默认虚拟主机优先级高于你的自定义配置。 - 添加默认虚拟主机标识(可选):如果你需要支持IP直接访问、或者所有未匹配到其他域名的请求都走当前站点,可以在监听端口配置中添加
default_server标识:
443端口配置修改为:
80端口配置修改为:listen 443 ssl default_server; listen [::]:443 ssl default_server;listen 80 default_server; listen [::]:80 default_server; - 校验访问域名匹配性:访问时需使用你配置中填写的
my_domain_here或www.my_domain_here域名,不要直接使用IP访问(除非你已配置default_server),否则无法匹配到对应虚拟主机。 - 排查全量生效配置:如果以上操作后问题仍存在,执行
nginx -T(大写T)查看所有加载生效的Nginx配置,确认是否有其他配置段定义了root /usr/share/nginx/html。
内容的提问来源于stack exchange,提问作者Joakim
相关产品推荐
相关产品推荐

