2013-08-12 21:00:48
来 源
IT技术网
Nginx
这篇文章里介绍了Nginx配置中使用error_page指令,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。

博客刚开不久,访问流量正在稳步上升,可是,从昨天开始,从搜索引擎带来的流量骤降,让我百思不得其解,使用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服务器

}

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。