重啟伺服器之後的 502 Bad Gateway
在digital ocean上買了個伺服器。前幾天digital ocean維護,後來我的網站就打不開了。
開始是 getsockopt: connection refused 這個錯誤。查了下百度,說什麼的都有。
大部分有經驗的程式設計師都會寫一個重啟指令碼。我沒有經驗,所以沒有寫。想到這裡,我估計先要重啟一下nginx。
我之前的文章裡有提到過這一步。
https://blog.csdn.net/codechelle/article/details/55001468
重啟nginx之後,就看到了502 Bad Gateway
我本來按我之前文章的步驟,重啟了mysql。但是,還是502。而且我之前文章裡提到的另一個域名已經到期被贖回了,所以我也無法對比測試。只能繼續百度。
有一篇文章提到檢視nginx的錯誤日誌,我開啟error.log,tail error.log 查看了最後一條錯誤。是這個:
(111: Connection refused) while connecting to upstream
然後我又針對這個問題查了一下,都是建議配置nginx localhost等等。我感覺這些是針對第一次配置就不成功的。但我這個網站已經用了兩年了,伺服器重啟之前都是正常的。所以我認為這些重新配置的方法並不適用。
最後的解決方法:重啟python程式
nohup python app.py & (app.py 是我的檔名)
p.s. 這篇文章裡,有幾個回答挺好的
https://www.zhihu.com/question/21647204
一個是說,雖然502 bad gateway,聽上去像是nginx的問題,但其實也可能是資料庫或是其它地方的問題。所以,不要一味在nginx的配置檔案裡修改和找原因。
另一個回答是說,程式沒有運氣不運氣,一定是有bug。我想說,bug聽起來像是有需要修改的程式碼。其實甚至都不一定是這樣,而是僅僅有些步驟沒有做。這一點初學者尤其需要注意。比如,我這個網站,以前可以上的,今天突然登不上了,99%不是配置的問題,而應該去想步驟的問題。