記錄nginx兩種問題解決
1: recv錯誤
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久,沒有找到原因。
後來
error_reporting = E_ALL & ~E_NOTICE打開php的notice提示,發現,請求png圖片時,報出php語法錯誤來,奇哉怪也,突然想到是nginx配置問題,所有的請求,都按php解析做的,原來的nginx配置是
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; }找到原因後,調整如下
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:大意失荊州,太小看這個問題,以為很容易就能搞定。
最後更新:2017-04-03 16:48:30