作為一個iOS開發(fā)、無意間開始慢慢研究nginx。其實這要感謝我的總監(jiān)黃哥,開始是他帶我使用fastdfs搭建圖片服務器,慢慢得也對nginx有了一些了解。
說來也奇怪,按說通過F5負載均衡后的2臺圖片服務器,即使有一臺服務器沒有圖片(返回404),也應該去另一臺服務器去獲取。更奇怪的是,4g總是去訪問那臺沒有圖片的服務器,WiFi沒有問題。讓我苦惱很久,不能理解。但是再不能理解,解決問題是關(guān)鍵呀。其實那時心中只有一種方案,就是讓2臺圖片服務器的圖片同步(同步歷史數(shù)據(jù)),但是生產(chǎn)服務器又不能搞測試,萬一失敗了咋整(客戶分分鐘會干死我)。測試環(huán)境跟生產(chǎn)不一樣。就在回家的路上,突然想到一招,就是在沒有圖片服務器的nginx,在返回碼是404時,重新指向那臺有圖片的服務器不就OK了,,可是回到家,百度了一下關(guān)于對nginx 404 重新指向的處理,都是向一個html,沒有我想要的。
實在沒有辦法,只能從書中找吧,之前買過一本nginx大全,有點厚,讀起來特別像大學的課本,但是為了解決問題,忍著點唄。就只看error_page,404類似的章節(jié),說實話,找了2個小時,沒找到,有點氣餒,看會人民的名義緩緩。就在隨意翻書時,找到了我想要的,上代碼
location / {
root index.html
error_page 404 @fallback;
}
location @falldback {
proxy_pass http://backend;
}
解釋一下
當訪問的鏈接狀態(tài)碼是404時,重新指向URI,進入到 falldback指向的服務器。