今天蹲坑时突然想起服务器还有个站点没挂上去,结果折腾nginx虚拟主机配置差点把键盘摔了。本来寻思三分钟搞定的事儿,硬是卡了两个钟头,必须把踩的坑记下来给大伙避雷。
照着手册新建了个.conf文件,噼里啪敲完配置重启nginx,满心等着新站点亮相。结果浏览器一开,卧槽直接报502!当时就蒙了:这特么不是基础操作吗?
先把*拍脸上:
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 81,顺手在配置里补上server_name *,重启完终于不报错了。
正嘚瑟,同事说访问旧站点直接跳新页面了!冷汗唰就下来了——原来忘记在旧配置里写 server_name *。nginx这二傻子把所有没标名字的请求全怼到第一个server块了。
在旧配置补上关键两行:
server_name *;
return 301 https://$host$request_uri;
现在看着俩站点并排跑,感觉自己像刚修好漏水水管的物业大爷。配置nginx就跟带娃似的,少交代半句它就给你捅娄子!
*请认真填写需求信息,我们会在24小时内与您取得联系。