閱讀810 返回首頁    go 魔獸


記錄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

  上一篇:go Eclipse:Run on Hadoop 沒有反應
  下一篇:go “棱鏡”下的冰山