国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx服務器中配置404錯誤頁面時一些值得注意的地方

2024-08-30 12:27:54
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx服務器中配置404錯誤頁面時一些值得注意的地方,包括隱藏Nginx出錯頁面及Header上的版本號的安全方法,需要的朋友可以參考下
 

換了VPS之后的某一天,在Google管理員工具控制臺下看到了大量的"軟404"錯誤,查找了一些資料之后發現是自己在Nginx下配置404頁面的方法不對才導致了錯誤的產生,在此記錄一下Nginx下正確的404頁面配置方法。

404是一個相應代碼,表示"頁面無法找到"(Page Not Found),Google關于"軟404"給出的說法是:

 

復制代碼代碼如下:

 

Instead of returning a 404 response code for a non-existent URL, websites that serve "soft 404s" return a 200 response code.

 

 

就是說對于那些不存在的URL,服務器并沒有返回404(Page Not Found)代碼,而是返回了200(OK)代碼,而這是不正常的。

之后在其它的搜索結果里我又看到了這樣一段話

 

復制代碼代碼如下:

 

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.

 


 

看完之后恍然大悟,因為我的404自定義頁面是有圖片和CSS的,而圖片跟CSS都是以相對路徑(eg. /xxx/xxx)寫在頁面里的,所以為了能讓整站都能看到404頁面里的圖片,我就把404頁面在Nginx里定義成了絕對路徑(eg. //www.slyar.com/xxx/xxx),由于頁面被當成了外部頁面,所以會返回200代碼,由此產生了"軟404"錯誤。

知道了錯誤,那就好辦了。將404頁面的路徑定義為相對路徑,至于圖片和CSS,只要在頁面里使用絕對路徑即可。

Nginx下正確的404頁面定義方法:

1、VIM編輯Nginx配置文件,用了vhosts的就單獨改,沒用的直接改nginx.conf

vim /usr/local/nginx/conf/nginx.conf

or

vim /usr/local/nginx/conf/vhosts/slyar.com.nginx.conf

2、以相對路徑指定404頁面

server {#error_page 404 //www.slyar.com/404.htmlerror_page 404 /404.html;}

3、:wq保存退出,重新加載Nginx

/usr/local/nginx/sbin/nginx -s reload

4、重新檢查一下不存在的頁面,看是否返回404

curl -I //www.slyar.com/slyarHTTP/1.1 404 Not FoundServer: nginx/1.0.15Date: Mon, 27 Aug 2012 08:13:56 GMTContent-Type: text/htmlContent-Length: 2110Connection: keep-alive

5.隱藏Nginx出錯頁面及Header上的版本號
Nginx在出錯頁面,例如403和404頁上會默認顯示Nginx的版本號,這是非常不安全的,黑客可能會通過你的Nginx版本號獲知如何入侵你的服務器,因為特定版本的服務器程序可能會存在某些漏洞。

Nginx的版本號通常會出現在2個地方:

1、HTTP Header,例如 Server:nginx/1.x.x 等信息會暴露Web服務器所用軟件名稱以及版本號

2、在403和404等出錯頁面上,默認會顯示 Nginx 1.x.x 等版本信息

隱藏Nginx版本號非常簡單,官方已經給出了非常好的解決方案,利用server_tokens (Whether to send the Nginx version number in error pages and Server header)

打開配置文件Nginx.conf,然后在http一段中增加下面的參數

http {...其它配置server_tokens off;}

之后 nginx -s reload 重載Nginx配置,如此就可以隱藏掉Nginx的版本號了。可以使用curl自我測試。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会同县| 乌兰察布市| 柳林县| 调兵山市| 余江县| 阿城市| 元谋县| 莆田市| 楚雄市| 洪江市| 顺义区| 城固县| 陆良县| 舒城县| 克拉玛依市| 晋州市| 峨眉山市| 休宁县| 增城市| 崇明县| 英吉沙县| 饶平县| 班玛县| 大厂| 沧州市| 万安县| 淳安县| 屏东市| 平凉市| 景宁| 仪陇县| 临沂市| 和平区| 温州市| 腾冲县| 望都县| 凤山市| 万州区| 始兴县| 晋州市| 礼泉县|