2017-08-04 48 views
0

今天,我運行了一段運行了100多次的可靠部署腳本,以便對我支持的舊系統的舞臺副本進行輕微日誌記錄更改。運行後,我在嘗試登錄時收到上述錯誤消息。如果服務器不是代理服務器,則不允許使用絕對URI

Nginx的訪問日誌給出的錯誤:

10.0.1.65 - foo [04/Aug/2017:01:07:57 +0000] "GET /girder/api/v1/user/authentication HTTP/1.1" 400 50 " http://bar-stage/ " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" "-"

在系統運行過程稱爲girder一個奇怪的web框架,但基於日誌看起來請求甚至從來沒有得到到girder。我回滾了這個變化,系統仍然被打破。我重新測試了dev上更改的代碼,工作正常。我運行部署腳本對開發,基本上只是做一個git pull並重新啓動girder,它打破了開發。生產和第二個(不變的)開發者服務器仍然正常工作。我們從我們的基本映像創建了一個全新的開發服務器,同樣的錯誤。

有沒有人有任何想法是怎麼回事?

單嘗試nginx的調試日誌:

2017/08/04 17:58:31 [debug] 2146#2146: *1 write new buf t:1 f:0 000055E4D62A8F58, pos 000055E4D62A8F58, size: 157 file: 0, size: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http write filter: l:0 f:0 s:157 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http proxy filter init s:400 h:0 c:0 l:50 
2017/08/04 17:58:31 [debug] 2146#2146: *1 tcp_nodelay 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http upstream process non buffered downstream 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http output filter "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http copy filter: "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http postpone filter "/girder/api/v1/user/authentication?" 000055E4D62A9008 
2017/08/04 17:58:31 [debug] 2146#2146: *1 write old buf t:1 f:0 000055E4D62A8F58, pos 000055E4D62A8F58, size: 157 file: 0, size: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 write new buf t:0 f:0 0000000000000000, pos 000055E4D629ABCA, size: 50 file: 0, size: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http write filter: l:0 f:1 s:207 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http write filter limit 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 writev: 207 of 207 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http write filter 0000000000000000 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http copy filter: 0 "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 finalize http upstream request: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 finalize http proxy request 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free rr peer 1 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 close http upstream connection: 11 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D62B2E10, unused: 48 
2017/08/04 17:58:31 [debug] 2146#2146: *1 event timer del: 11: 1501870111101 
2017/08/04 17:58:31 [debug] 2146#2146: *1 reusable connection: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http output filter "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http copy filter: "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http postpone filter "/girder/api/v1/user/authentication?" 00007FFC3E69E320 
2017/08/04 17:58:31 [debug] 2146#2146: *1 write new buf t:0 f:0 0000000000000000, pos 0000000000000000, size: 0 file: 0, size: 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http write filter: l:1 f:0 s:0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http copy filter: 0 "/girder/api/v1/user/authentication?" 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http finalize request: 0, "/girder/api/v1/user/authentication?" a:1, c:1 
2017/08/04 17:58:31 [debug] 2146#2146: *1 set http keepalive handler 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http close request 
2017/08/04 17:58:31 [debug] 2146#2146: *1 http log handler 
2017/08/04 17:58:31 [debug] 2146#2146: *1 posix_memalign: 000055E4D629BB90:4096 @16 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D629AB80 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D62B7EF0, unused: 8 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D62A8230, unused: 224 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D629BB90, unused: 3797 
2017/08/04 17:58:31 [debug] 2146#2146: *1 free: 000055E4D62B2A00 
2017/08/04 17:58:31 [debug] 2146#2146: *1 hc free: 0000000000000000 
2017/08/04 17:58:31 [debug] 2146#2146: *1 hc busy: 0000000000000000 0 
2017/08/04 17:58:31 [debug] 2146#2146: *1 reusable connection: 1 
2017/08/04 17:58:31 [debug] 2146#2146: *1 event timer add: 3: 65000:1501869576102 
2017/08/04 17:58:31 [debug] 2146#2146: timer delta: 1 
2017/08/04 17:58:31 [debug] 2146#2146: worker cycle 
2017/08/04 17:58:31 [debug] 2146#2146: epoll timer: 65000 
+0

檢查error.log。如果需要,請在調試模式下使用error_log –

回答

0

解開了謎底,排序的。

Girder取決於CherryPyCherryPy取決於包裝Cheroot。由於某些原因,Cheroot沒有顯示在我們的pip凍結中,所以我們沒有固定它,或者注意到它已經改變。安全的腳本將其更新到最新版本,從5.7.0到5.8.0,由於某些原因,這些不適用於我們的設置和nginx。它可以與Apache一起工作,我們昨晚在短期內解決了這個問題。

我希望這可以幫助別人。

+0

請向[我們的GitHub回購](https://github.com/cherrypy/cheroot)報告此類問題。這個改變是由Waitress的維護者發送給我們的,並且實現了RFC 7230和RFC 7231.我已經修復了它造成的一些問題,但是它似乎打破了一些與cherrypy兼容的問題。你能不能分享你的工作/非工作反向代理配置,所以我可以嘗試用測試套件來覆蓋它? – webKnjaZ

+1

週一我上班時也有計劃。試圖找出問題出在哪裏的時間已經過去了。 – TristanMatthews

+0

請檢查您的HTTP流量,CherryPy應用程序的傳入。我猜測,在請求行中存在包含絕對URI表單的HTTP查詢,這僅適用於HTTP代理,否則無效。 – webKnjaZ

相關問題