今天蹲坑時(shí)突然想起服務(wù)器還有個(gè)站點(diǎn)沒掛上去,結(jié)果折騰nginx虛擬主機(jī)配置差點(diǎn)把鍵盤摔了。本來尋思三分鐘搞定的事兒,硬是卡了兩個(gè)鐘頭,必須把踩的坑記下來給大伙避雷。
照著手冊(cè)新建了個(gè).conf文件,噼里啪敲完配置重啟nginx,滿心等著新站點(diǎn)亮相。結(jié)果瀏覽器一開,臥槽直接報(bào)502!當(dāng)時(shí)就蒙了:這特么不是基礎(chǔ)操作嗎?
先把*拍臉上:
1. 解決文件夾不讓碰氣沖沖敲了句 ls -ld /var/www/new_site,發(fā)現(xiàn)目錄屬主居然是root。nginx這窮小子根本不讓碰!直接甩命令:
sudo chown -R nginx:nginx /var/www/new_site完事兒再試還是跪,突然想起來SELinux這尊大佛。趕緊setenforce 0暫時(shí)關(guān)防火墻,頁面噌就跳出來了。
2. 解決端口打架netstat -tulnp grep :80 一查,好家伙倆server塊都在搶80端口。翻配置文件果然發(fā)現(xiàn):
當(dāng)場(chǎng)給新站點(diǎn)改成 listen 81,順手在配置里補(bǔ)上server_name *,重啟完終于不報(bào)錯(cuò)了。
正嘚瑟,同事說訪問舊站點(diǎn)直接跳新頁面了!冷汗唰就下來了——原來忘記在舊配置里寫 server_name *。nginx這二傻子把所有沒標(biāo)名字的請(qǐng)求全懟到第一個(gè)server塊了。
在舊配置補(bǔ)上關(guān)鍵兩行:
server_name *;
return 301 https://$host$request_uri;
現(xiàn)在看著倆站點(diǎn)并排跑,感覺自己像剛修好漏水水管的物業(yè)大爺。配置nginx就跟帶娃似的,少交代半句它就給你捅婁子!
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。