Nginx服務(wù)器中配置404錯(cuò)誤頁(yè)面時(shí)一些值得注意的地方
換了VPS之后的某一天,在Google管理員工具控制臺(tái)下看到了大量的"軟404"錯(cuò)誤,查找了一些資料之后發(fā)現(xiàn)是自己在Nginx下配置404頁(yè)面的方法不對(duì)才導(dǎo)致了錯(cuò)誤的產(chǎn)生,在此記錄一下Nginx下正確的404頁(yè)面配置方法。
404是一個(gè)相應(yīng)代碼,表示"頁(yè)面無(wú)法找到"(Page Not Found),Google關(guān)于"軟404"給出的說(shuō)法是:
Instead of returning a 404 response code for a non-existent URL, websites that serve "soft 404s" return a 200 response code.
就是說(shuō)對(duì)于那些不存在的URL,服務(wù)器并沒(méi)有返回404(Page Not Found)代碼,而是返回了200(OK)代碼,而這是不正常的。
之后在其它的搜索結(jié)果里我又看到了這樣一段話
Soft 404s can occur as a result of configuration errors when an Error Document 404 is specified as an absolute path rather than a relative path.
看完之后恍然大悟,因?yàn)槲业?04自定義頁(yè)面是有圖片和CSS的,而圖片跟CSS都是以相對(duì)路徑(eg. /xxx/xxx)寫(xiě)在頁(yè)面里的,所以為了能讓整站都能看到404頁(yè)面里的圖片,我就把404頁(yè)面在Nginx里定義成了絕對(duì)路徑(eg. //www.slyar.com/xxx/xxx),由于頁(yè)面被當(dāng)成了外部頁(yè)面,所以會(huì)返回200代碼,由此產(chǎn)生了"軟404"錯(cuò)誤。
知道了錯(cuò)誤,那就好辦了。將404頁(yè)面的路徑定義為相對(duì)路徑,至于圖片和CSS,只要在頁(yè)面里使用絕對(duì)路徑即可。
Nginx下正確的404頁(yè)面定義方法:
1、VIM編輯Nginx配置文件,用了vhosts的就單獨(dú)改,沒(méi)用的直接改nginx.conf
vim /usr/local/nginx/conf/nginx.conf
or
vim /usr/local/nginx/conf/vhosts/slyar.com.nginx.conf
2、以相對(duì)路徑指定404頁(yè)面
server {
#error_page 404 //www.slyar.com/404.html
error_page 404 /404.html;
}
3、:wq保存退出,重新加載Nginx
/usr/local/nginx/sbin/nginx -s reload
4、重新檢查一下不存在的頁(yè)面,看是否返回404
curl -I //www.slyar.com/slyar HTTP/1.1 404 Not Found Server: nginx/1.0.15 Date: Mon, 27 Aug 2012 08:13:56 GMT Content-Type: text/html Content-Length: 2110 Connection: keep-alive
5.隱藏Nginx出錯(cuò)頁(yè)面及Header上的版本號(hào)
Nginx在出錯(cuò)頁(yè)面,例如403和404頁(yè)上會(huì)默認(rèn)顯示Nginx的版本號(hào),這是非常不安全的,黑客可能會(huì)通過(guò)你的Nginx版本號(hào)獲知如何入侵你的服務(wù)器,因?yàn)樘囟ò姹镜姆?wù)器程序可能會(huì)存在某些漏洞。
Nginx的版本號(hào)通常會(huì)出現(xiàn)在2個(gè)地方:
1、HTTP Header,例如 Server:nginx/1.x.x 等信息會(huì)暴露Web服務(wù)器所用軟件名稱以及版本號(hào)
2、在403和404等出錯(cuò)頁(yè)面上,默認(rèn)會(huì)顯示 Nginx 1.x.x 等版本信息
隱藏Nginx版本號(hào)非常簡(jiǎn)單,官方已經(jīng)給出了非常好的解決方案,利用server_tokens (Whether to send the Nginx version number in error pages and Server header)
打開(kāi)配置文件Nginx.conf,然后在http一段中增加下面的參數(shù)
http {
...其它配置
server_tokens off;
}
之后 nginx -s reload 重載Nginx配置,如此就可以隱藏掉Nginx的版本號(hào)了??梢允褂胏url自我測(cè)試。
- Nginx設(shè)置404錯(cuò)誤頁(yè)面跳轉(zhuǎn)的幾種方法總結(jié)
- 使用Nginx Ingress 優(yōu)雅顯示錯(cuò)誤頁(yè)面
- Nginx?error_page自定義錯(cuò)誤頁(yè)面設(shè)置過(guò)程
- NGINX服務(wù)器配置404錯(cuò)誤頁(yè)面轉(zhuǎn)向的方法
- nginx緩存及錯(cuò)誤頁(yè)面配置
- NGINX下配置404錯(cuò)誤頁(yè)面的方法分享
- 為Nginx自定義404,502錯(cuò)誤頁(yè)面的方法
- nginx 自定義 404、50x 錯(cuò)誤頁(yè)面的實(shí)現(xiàn)
相關(guān)文章
高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解
今天小編就為大家分享一篇關(guān)于高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
nginx tcp負(fù)載均衡的具體實(shí)現(xiàn)
Nginx是比較不錯(cuò)的開(kāi)源Web服務(wù)器之一,它也可以用作TCP和UDP負(fù)載均衡器,本文主要介紹了nginx tcp負(fù)載均衡的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
nginx服務(wù)器通過(guò)配置來(lái)解決API的跨域問(wèn)題
這篇文章主要給大家介紹了關(guān)于nginx服務(wù)器是如何配置來(lái)解決API跨域問(wèn)題的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
nginx 虛擬主機(jī)設(shè)置實(shí)例(多網(wǎng)站配置)
Nginx 虛擬主機(jī)設(shè)置一例,主要是針對(duì)虛擬主機(jī)的設(shè)置,多網(wǎng)站配置方法,需要的朋友可以參考下2013-02-02
國(guó)外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例
這篇文章主要介紹了國(guó)外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例,使用fastcgi配置模式,需要的朋友可以參考下2014-07-07

