在工作中,我們在rails中運行一些高流量站點。我們經常會得到一個問題,在Nginx的錯誤日誌中的垃圾資訊:Nginx + unicorn(rails)在nginx錯誤日誌中經常給出「連接被拒絕」
2011/05/24 11:20:08 [error] 90248#0: *468577825 connect() to unix:/app_path/production/shared/system/unicorn.sock failed (61: Connection refused) while connecting to upstream
我們的設置是前端服務器(負載平衡),以及麒麟我們4臺應用服務器上nginx的。每個獨角獸都有8名工人。該設置與GitHub使用的設置非常相似。
我們大部分的內容都被緩存了,當請求到達nginx時,它會在memcached中查找頁面,並在找到該頁面時提供該頁面 - 否則請求會轉到rails。
我可以解決上面的問題 - 通過做後跟一個服務器上的麒麟過程的pkill的 - 有時:
cap production unicorn:check (removing all the pid's)
cap production unicorn:start
你們是否有任何線索,我該怎麼調試這個問題?當這些問題發生時,我們在數據庫服務器上沒有任何明顯的高負載..
今天發生在我身上的事情,在使用unix套接字連上3天gunicorn(v18.2)上行之後,我得到了拒絕上行的連接。襪子文件仍然存在,當我檢查ps -aux時,gunicorn仍在運行。我正在使用eventlet,最新版本0.14。如果這個問題依然存在,我將切換到uWSGI/gevent – radtek 2014-01-20 03:44:22
如何在本地測試一個unix套接字?當我使用TCP套接字時,我可以通過使用lynx連接到localhost:8000來輕鬆地進行測試。 – radtek 2014-01-20 03:56:08