全网整合营销服务商

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

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

nginx虚拟主机常见问题?(解决配置错误实用方案)

今天蹲坑时突然想起服务器还有个站点没挂上去,结果折腾nginx虚拟主机配置差点把键盘摔了。本来寻思三分钟搞定的事儿,硬是卡了两个钟头,必须把踩的坑记下来给大伙避雷。

第1轮翻车现场

照着手册新建了个.conf文件,噼里啪敲完配置重启nginx,满心等着新站点亮相。结果浏览器一开,卧槽直接报502!当时就蒙了:这特么不是基础操作吗?

  • 查日志:tail -f * 刷出来两行要命提示
  • 权限作妖:open() "/var/www/new_site" failed (13: Permission denied)
  • 端口打架:bind() to 0.0.0.0:80 failed (98: Address already in use)

修车实操记录

先把*拍脸上:

1. 解决文件夹不让碰

气冲冲敲了句 ls -ld /var/www/new_site,发现目录属主居然是root。nginx这穷小子根本不让碰!直接甩命令:

sudo chown -R nginx:nginx /var/www/new_site

完事儿再试还是跪,突然想起来SELinux这尊大佛。赶紧setenforce 0暂时关防火墙,页面噌就跳出来了。

2. 解决端口打架

netstat -tulnp grep :80 一查,好家伙俩server块都在抢80端口。翻配置文件果然发现:

  • 老站点:listen 80;
  • 新站点:listen 80; #完全没写server_name区分

当场给新站点改成 listen 81,顺手在配置里补上server_name *,重启完终于不报错了。

又掉新坑里

正嘚瑟,同事说访问旧站点直接跳新页面了!冷汗唰就下来了——原来忘记在旧配置里写 server_name *。nginx这二傻子把所有没标名字的请求全怼到第一个server块了。

在旧配置补上关键两行:

server_name *;

return 301 https://$host$request_uri;

血泪经验包

  • 文件夹权限:别光看755,nginx用户得有进出目录的票
  • 端口监听:多个站点要么分端口要么写清楚域名
  • 防火墙老六:SELinux随时准备背锅
  • 默认站点:第一个server块永远挂着免责声明

现在看着俩站点并排跑,感觉自己像刚修好漏水水管的物业大爷。配置nginx就跟带娃似的,少交代半句它就给你捅娄子!

您的项目需求

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