显示“welcome to nginx”是因为nginx未将请求路由至你的站点配置,主因是server_name未匹配或站点配置未被正确加载;需检查配置文件存在性、include路径、default_server抢占及windows路径错位等问题,并执行nginx -s reload生效。

为什么访问域名总是显示“Welcome to nginx”而不是你的网站
域名解析成功但页面仍是Nginx默认页,说明请求确实抵达了服务器,但Nginx没把流量交给你的站点配置——根本原因是server_name未匹配,或你的站点配置根本没被加载。不是DNS问题,也不是网络不通,是Nginx的路由逻辑失效了。
检查宝塔是否真生成并加载了你的站点配置文件
宝塔在创建站点时,本应向/www/server/panel/vhost/nginx/写入一个以域名命名的配置文件(如example.com.conf),并确保主配置nginx.conf中包含include /www/server/panel/vhost/nginx/*.conf;。但实际中常出现:
— 配置文件空、权限错误或内容为空
— include路径写错(比如漏掉nginx/子目录)
— 宝塔后台卡顿导致写入失败,但界面仍显示“创建成功”
实操建议:
• 进SSH执行:ls -l /www/server/panel/vhost/nginx/,确认目标域名配置文件存在且非空
• 执行:grep -r "server_name example.com" /www/server/panel/vhost/nginx/,看是否真有该域名定义
• 执行:nginx -t,若报错“no matches”,大概率是include路径失效或配置语法错误
确认没有其他server块抢占default_server身份
Nginx在找不到匹配server_name的块时,会回落到标记为default_server的那个server。宝塔默认会在/www/server/panel/vhost/nginx/0.default.conf里放一个带listen 80 default_server;的块——它就是那个“欢迎页”的来源。如果你的站点配置里没显式声明listen 80;,或写了listen 80;但没加default_server,而0.default.conf又排在加载顺序前面,那它就会永远赢。
实操建议:
• 查看/www/server/panel/vhost/nginx/0.default.conf是否存在且启用
• 在你的站点配置中,确保server块内有明确的listen 80;(HTTP)或listen 443 ssl;(HTTPS)
• 不要依赖“默认端口自动生效”,显式写出来更可靠
• 若你只跑一个站,可临时重命名0.default.conf为0.default.conf.bak再nginx -s reload测试
Windows版宝塔常见路径错位导致配置不加载
Windows版宝塔的Nginx工作目录(prefix)容易错配成C:\BtSoft\panel而非C:\BtSoft\nginx,结果nginx -t读的是面板目录下的假配置,而真正运行的Nginx进程却加载C:\BtSoft\nginx\conf\nginx.conf——两边完全脱节。
实操建议:
• 在CMD中执行:"C:\BtSoft\nginx\nginx.exe" -p "C:\BtSoft\nginx" -c "C:\BtSoft\nginx\conf\nginx.conf" -t,强制指定路径校验
• 若报错open() "/C:/BtSoft/panel/temp/client_body_temp" failed,说明Nginx正在找错路径下的temp目录,需手动创建C:\BtSoft\nginx\temp\及其子目录
• 面板里的“重启Nginx”按钮在Windows上经常不可靠,务必配合命令行重载
最易被忽略的一点:修改完配置后,必须执行nginx -s reload(或通过面板点“重载配置”),而不是仅“保存”。Nginx不会自动感知文件变化;而“重启”按钮在Windows下可能启动的是旧进程路径,reload才是安全动作。










