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