You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置多站点时访问第二个站点始终返回默认index.html如何解决

问题排查&解决步骤

1. 确认配置已正确加载无语法错误

  • 若使用Debian/Ubuntu默认Nginx结构,配置需放在/etc/nginx/sites-available/目录下,执行软链命令启用配置:
    ln -s /etc/nginx/sites-available/knowinapp.conf /etc/nginx/sites-enabled/
    
    若使用CentOS/RHEL系,确认knowinapp.conf放在/etc/nginx/conf.d/目录下,且后缀为.conf。
  • 执行命令检查配置语法:
    nginx -t
    
    确保返回结果为test is successful,如有报错先修正对应内容。
  • 执行nginx -T打印所有已加载的配置,确认输出中包含knowinapp.conf的内容,排除配置未加载问题。

2. 确认访问匹配域名规则

你当前的knowinapp.conf仅匹配knowinapp.com和www.knowinapp.com两个域名:

  • 若直接用服务器IP访问,会命中默认的default_server站点,显示/var/www/html下的内容,属于正常逻辑。
  • 本地测试时需修改本地hosts文件添加映射:
    你的服务器IP knowinapp.com www.knowinapp.com
    
    再通过域名访问站点。
  • 可通过curl指定Host头验证配置是否生效:
    curl -H "Host: knowinapp.com" 你的服务器IP
    
    若返回内容为/var/www/knowinapp.com/index.html的内容,说明Nginx配置正常,问题出在访问侧的域名解析或缓存。

3. 确认目录权限&文件存在

  • 检查站点目录权限,确保Nginx默认运行用户www-data有读取权限:
    chown -R www-data:www-data /var/www/knowinapp.com
    chmod -R 755 /var/www/knowinapp.com
    
  • 确认/var/www/knowinapp.com目录下存在index.html文件,且内容正确。
  • 若使用CentOS/RHEL系系统,默认开启SELinux,需执行命令修正目录上下文:
    chcon -R -t httpd_sys_content_t /var/www/knowinapp.com
    

4. 重载服务&清理缓存

  • 修改配置后必须执行重载命令让配置生效:
    systemctl reload nginx
    
  • 清理浏览器缓存或使用无痕模式访问,排除浏览器缓存旧页面的问题。

内容的提问来源于stack exchange,提问作者Cihat Şaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:03