《PHP表單提交后出現502 bad gateway解決辦法》要點:
本文介紹了PHP表單提交后出現502 bad gateway解決辦法,希望對您有用。如果有疑問,可以聯系我們。
相關主題:nginx配置
有時侯,提交表單后,服務器出現“502 bad gateway”錯誤,這種情況一般都是大的文章內容。
網站的解決辦法有:
1、修改PHP.INI中的memory_limit,加大到64M,但現在默認的PHP配置就是128M,所以通常不是這項。
2、修改PHP.INI中的post_max_size=8M. 一般文章內容再大,也到了不8M,所以肯定也不是這個。當然,如果有較多圖片等情形,那是有可能的。可以增大看看。
2、修改php-fpm.conf(文件在 /usr/local/php/etc/php-fpm.conf)request_terminate_timeout 選項,它是定義請求處理的最大時間。
網絡上有這樣做法:
原設置為10
request_terminate_timeout = 10,
改為
request_terminate_timeout = 60,
重啟php-fpm:
service php-fpm restart
你可以試一下,但是這個一般不是問題根源,以下才是主要原因:
打開nginx.conf,找到fastcgi_buffer_size 32K,把這里的值增大到64K或128K,
必須注意的是:
fastcgi_busy_buffers_size 和 fastcgi_temp_file_write_size 必須大于或等于 fastcgi_buffer_size ,所以當這2個值小于剛改的值時,也需要調大他們的值。
重啟nginx就行了。
為了能舉一反三,你需要熟悉這個配置項和相關的幾個含義:
fastcgi_connect_timeout=300; #連接到后端fastcgi超時時間
fastcgi_send_timeout=300; #向fastcgi請求超時時間(這個指定值已經完成兩次握手后向fastcgi傳送請求的超時時間)
fastcgi_rend_timeout=300; #接收fastcgi應答超時時間,同理也是2次握手后
fastcgi_buffer_size=64k; #讀取fastcgi應答第一部分需要多大緩沖區,該值表示使用1個64kb的緩沖區讀取應答第一部分(應答頭),可以設置為fastcgi_buffers選項緩沖區大小
fastcgi_buffers 4 64k;#指定本地需要多少和多大的緩沖區來緩沖fastcgi應答請求,假設一個php或java腳本所產生頁面大小為256kb,那么會為其分配4個64kb的緩沖來緩存;若頁面大于256kb,那么大于的256kb的部分會緩存到fastcgi_temp指定路徑中,這并非是個好辦法,內存數據處理快于硬盤,一般該值應該為站點中php/java腳本所產生頁面大小中間值,如果站點大部分腳本所產生的頁面大小為256kb,那么可把值設置為16 16k,4 64k等
fastcgi_busy_buffers_size 128k; #默認值是fastcgi_buffer的2倍
fastcgi_temp_file_write_size 128k;#寫入緩存文件使用多大的數據塊,默認值是fastcgi_buffer的2倍
fastcgi_cache TEST;#開啟fastcgi緩存并為其指定為TEST名稱,降低cpu負載,防止502錯誤發生.
#應答代碼緩存時間,200和302應答緩存為1個小時,301一天,其他1分鐘
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/132.html