程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> nginx error

nginx error

編輯:PHP基礎知識
 

博客剛開不久,訪問流量正在穩步上升,可是,從昨天開始,從搜索引擎帶來的流量驟降,讓我百思不得其解,使用google網站管理員工具診斷後發現,雖然網頁返回了正確的內容,但是HTTP中始終響應的 404 代碼,仔細分析後得出的結論是nginx的error_page配置出了問題!

由於小站用的是nginx+apache的構建方式,apache放在後端處理php文件,nginx處理html、圖片的靜態文件。簡單配置如下:

location / {
index index.php index.html;
error_page 404 @proxy;
}
location @proxy {
 proxy_pass http://localhost:8080;
#8080端口放置apache服務器
}
....
#靜態文件的配置就省略了

思路很簡單,如果在定位符”/”下找不到文件將把文件代理給apache處理。這種處理方式,乍看下沒有問題,我在浏覽器下也能正常浏覽網頁,不過,nginx默認會給一個404代碼給浏覽器,這對蜘蛛的訪問是致命的。明白這點後處理就很簡單了。
將 error_page 404 @proxy; 改成 try_files $uri @proxy; 問題就解決了。

root /path/www/$host;
location / {
index index.php index.html;
proxy_pass http://localhost:8080;
}
location ~* \.(html|htm)$ {
 try_file $uri @proxy;
}
location ~* \.(jpg|gif|png|zip|js|css)$ {
 expires 30d;
 gzip on;
 gzip_min_length  1024;
 gzip_types       text/plain application/x-javascript text/css application/xml;

}
location @proxy {
 proxy_pass http://localhost:8080;
#8080端口放置apache服務器
}
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved