记录nginx两种问题解决
1: recv错误
[php]
recv() failed (104: Connection reset by peer) while reading client request line
发生这种问题,主要是因为网络问题,在迁移aizher.com 服务器过程中,碰到这样的问题,情况比较特殊,也是网络问题,但是不是网上描述本地网络端口冲突的问题。
出现这种问题原因是,西部数据的服务器上需要配置白名单,才能访问服务器,我之前只是做了DNS解析到西部数据的服务器上,
第一次客户端能够请到服务器上,但是,西部数据会马上把请求连接给重置,导致nginx提示连接充值,出现上述错误。
解决方案也很简单,直接在西部数据的服务器上添加白名单即可。(一开始知道白名单的事情,好长时间没搞,给忘记了)
2:js,图片被php执行。
在在迁移aizher.com 服务器过程中碰到的另外一个问题是,js,css,和图片被php执行(当然这是后来知道),一开始的时候,整个服务器的页面
都花掉了,页面样式全乱。并且是有些图片可以正常加载,而有的不能,png和jpg的都不能加载。当时因为是php配置问题,找了N久,没有找到原因。
后来
[php]
error_reporting = E_ALL & ~E_NOTICE
打开php的notice提示,发现,请求png图片时,报出php语法错误来,奇哉怪也,突然想到是nginx配置问题,所有的请求,都按php解析做的,原来的nginx配置是
[php]
server_name *.aizher.com;
index index.html index.htm index.php;
root /home/admin/web/;
location /$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/admin/web/$fastcgi_script_name;
}
找到原因后,调整如下
[php]
server_name *.aizher.com;
index index.html index.htm index.php;
root /home/admin/web/;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
location ~ .*/.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/admin/web/$fastcgi_script_name;
}
location /status {
stub_status on;
access_log off;
}
location ~ .*/.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*/.(js|css)?$
{
expires 12h;
}
也许你会问,为什么不把之前的nginx拷贝过来直接使用。原因是,
1:这台服务器上还有其他服务,nginx文件不能直接覆盖,之前是使用的lnmp,这个这台服务器,都是从头搭建,也没有使用fpm,所以...。
2:大意失荆州,太小看这个问题,以为很容易就能搞定。