博客刚开不久,访问流量正在稳步上升,可是,从昨天开始,从搜索引擎带来的流量骤降,让我百思不得其解,使用google网站管理员工具诊断后发现,虽然网页返回了正确的内容,但是HTTP中始终响应的 404 代码,仔细分析后得出的结论是nginx的error_page配置出了问题!
由于小站用的是nginx+apache的构建方式,apache放在后端处理php文件,nginx处理html、图片的静态文件。简单配置如下:
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
location/{indexindex.phpindex.html;error_page404@proxy;}location@proxy{proxy_passhttp://localhost:8080;#8080端口放置apache服务器}....#静态文件的配置就省略了
思路很简单,如果在定位符”/”下找不到文件将把文件代理给apache处理。这种处理方式,乍看下没有问题,我在浏览器下也能正常浏览网页,不过,nginx默认会给一个404代码给浏览器,这对蜘蛛的访问是致命的。明白这点后处理就很简单了。将 error_page 404 @proxy; 改成 try_files $uri @proxy; 问题就解决了。
root/path/www/$host;location/{indexindex.phpindex.html;proxy_passhttp://localhost:8080;}location~*.(html|htm)${try_file$uri@proxy;}location~*.(jpg|gif|png|zip|js|css)${expires30d;gzipon;gzip_min_length1024;gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;}location@proxy{proxy_passhttp://localhost:8080;#8080端口放置apache服务器}