全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:138-2348-1213

linux配置基于域名的虚拟主机出问题怎么办?常见解决方法分享

昨天刚给公司服务器折腾了个新网站,想着用nginx配个基于域名的虚拟主机省点资源。结果一顿操作猛如虎,重启服务傻眼了——浏览器死活打不开新站点,连旧网站都抽风了!气得我差点把键盘给砸了。

踩坑全记录

当时按教程在/etc/nginx/sites-available里新建了个配置文件,直接把旧配置复制了一份改域名:

  • 把server_name改成新域名 *
  • 网站根目录指向 /var/www/blog
  • 顺手把listen [::]:80 default_server这行删了(后来才知道这是万恶之源)

信心满满执行sudo nginx -t测试配置,居然提示成功!立马sudo systemctl restart nginx重启服务。结果用手机电脑轮番访问,不是404就是跳到旧网站,跟中邪似的。

排查车祸现场

急得满头汗的时候做了几件蠢事:

  • 反复检查拼写,把* 复制粘贴了十几次
  • 疯狂sudo tail -f /var/log/nginx/* 看日志
  • 把防火墙关了又开,差点把ssh连接给断了

在*里逮到关键线索:"no server name available"。这提示活见鬼了,我明明写好了server_name!

救命两板砖

突然想起来之前手贱删了default_server参数,连夜翻官方文档才弄明白:

  • 把主配置文件翻出来
  • 在http{}区块里补上server_names_hash_bucket_size 64;
  • 最重要的是在default_server所在的server块补上server_name _;

哆嗦着手敲完重启服务,两个网站瞬间都跳出来了!原来之前nginx找不到默认主机,直接摆烂罢工了。

血泪经验包

这事坑了我三小时奶茶钱,总结两条铁律:

  • 永远在默认主机配置里写死server_name _; 这玩意儿是保命符
  • 改配置前先cp * * 不然哭都找不着调

现在看着两个域名在浏览器里乖乖切换,突然理解为啥运维都爱撸猫——血压飙升的时候总得找个东西薅两把!

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。