0

請原諒我的無知。我對播放框架或MVC設計模式一無所知,請耐心等待。如何從運行在播放框架上的網站獲取http狀態

我需要編寫一個shell腳本來檢查我們的服務是否仍然運行。我曾計劃使用curl來獲取http響應代碼,並檢查它是否爲200或404。我們正在使用播放框架並使用MVC設計模式設計網站。我對這兩件事一無所知,所以這可能會加重我的困惑。

無論如何,該網站是因爲我檢查了鉻和FF,它的起來和工作。我跑這個curl命令,這應該給我一個200:

curl -I http://oursite.com:8080 
HTTP/1.1 404 Not Found 
Content-Type: text/html; charset=utf-8 
Content-Length: 1900 

由於在頭一個返回代碼,我得到一個404。我不知道很多關於網絡的技術,但我對404個狀態碼閱讀起來從維基百科,似乎它正在尋找一個index.html頁面(或任何請求的頁面)。我在我們的服務器上找到了/ dir/of/play/deployment/public目錄。我一味地創建了一個index.html,但它沒有幫助。當我期待200時,我仍然得到了404。

我也試過使用wget。 wget給了我一個200,但它將主頁的內容下載到我的本地acct中,名爲index.html。我跑

wget http://oursite.com:8080 
--2014-01-29 19:42:42-- http://oursite.com:8080/ 
Resolving oursite.com... 10.64.8.76 
Connecting to oursite.com|10.64.8.76|:8080... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 27181 (27K) [text/html] 
Saving to: 「index.html」 

我也跑了另一個wget命令,但這個給了我404我用蜘蛛的選擇不下載文件本地。

wget --spider http://oursite.com:8080 
Spider mode enabled. Check if remote file exists. 
--2014-01-29 19:42:42-- http://oursite.com:8080/ 
Resolving oursite.com... 10.64.8.76 
Connecting to oursite.com|10.64.8.76|:8080... connected. 
HTTP request sent, awaiting response... 404 Not Found 
Remote file does not exist -- broken link!!! 

最後一個命令的輸出表示存在它正在查找但找不到的遠程文件。然而,顯然這個網站在它不是蜘蛛模式時發送了一些內容,這要歸功於我本地目錄中index.html pg的創建/存在。

所以問題是,這個頁面捲曲和「wget --spider」尋找,爲什麼平原wget「找到」這個文件並下載它的內容?我是否正確地處理了這個問題(使用curl或wget來查看web服務是否正常運行)還是我攻擊這個問題並且應該使用其他方法來檢查?

在此先感謝您的幫助。

回答

1

我懷疑這是由於:

https://github.com/playframework/playframework/issues/2280

你需要做一個常規GET電話與代替-i:

curl -is http://myapp.com | awk '/HTTP\/1.1 (.*) (.*?)/ {print $2}' 

這應返回200的所有工作。

一個提示:在Chrome開發人員工具中,在網絡選項卡中,您可以右鍵單擊請求並「複製爲cUrl」。您可以將此請求與您的手寫cUrl請求進行比較。

相關問題