導航:首頁 > 編程語言 > phpcurl502

phpcurl502

發布時間:2022-04-23 20:51:50

php 502 bad gateway怎麼解決

1. php.ini的memory_limit 過小(如果有個別php程序進程需要佔用極大內存時這個必須注意)
2. php-fpm.conf中max_children或者max_requests 設置不合理(設置過小會因為沒有足夠的cgi進程處理請求,設置過大會出現一會兒有響應正常,一會兒等很久才有響應的情況,一般情況下children按 照內存計算,比如說1G設置64,2G128。這個根據實際情況自行調整。另外查看當前的PHP FastCGI進程數是否夠用的命令為:netstat -anpo |grep “php-cgi” | wc -l 如果實際使用的“FastCGI進程數”接近預設的“FastCGI進程數”,那麼,說明“FastCGI進程數”不夠用,需要增大。)
3. 查看nginx錯誤日誌,發現 pstream sent too big header while reading response headerfrom upstream ,則檢查client head buffer,fastcgi buffer size是否過小,可設置為32K。
4. php程序執行時間過長而超時,檢查nginx和fastcgi中各種timeout設置。(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300; keepalive_timeout ; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)
5. php-fpm有一個參數 max_requests ,該參數指明了每個children最多處理多少個請求後便會被關閉。在大量處理請求下,如果該值設置過小會導致children頻繁的自殺和建立而浪費 大量時間,若所有的children差不多都在這個時候自殺,則重建前將沒有children響應請求,於是出現502 。可以將該值設置大一些或者是0[無限]。
如果你伺服器並發量非常大,那隻能先增加機器,然後按以下方式優化會取得更好效果;但如果你並發不大卻出現502,一般都可以歸結為配置問題,腳本超時問題。

1.php-fpm進程數不夠用
使用netstat -napo |grep "php-fpm" | wc -l查看一下當前fastcgi進程個數,如果個數接近conf里配置的上限,就需要調高進程數。
但也不能無休止調高,可以根據伺服器內存情況,可以把php-fpm子進程數調到100或以上,在4G內存的伺服器上200就可以。
2. 調高調高linux內核打開文件數量
可以使用這些命令(必須是root帳號)
echo 'ulimit -HSn 65536'>> /etc/profile
echo 'ulimit -HSn 65536'>> /etc/rc.local
source /etc/profile
3.腳本執行時間超時
如果腳本因為某種原因長時間等待不返回,導致新來的請求不能得到處理,可以適當調小如下配置。
nginx.conf裡面主要是如下
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
php-fpm.conf里如要是如下
request_terminate_timeout =10s
4.緩存設置比較小
修改或增加配置到nginx.conf
proxy_buffer_size 64k;
proxy_buffers 512k;
proxy_busy_buffers_size 128k;
5. recv()failed (104: Connection reset by peer) while reading response header fromupstream
可能的原因機房網路丟包或者機房有硬體防火牆禁止訪問該域名
但最重要的是程序里要設置好超時,不要使用php-fpm的request_terminate_timeout,
最好設成request_terminate_timeout=0;
因為這個參數會直接殺掉php進程,然後重啟php進程,這樣前端nginx就會返回104: Connection reset by peer。這個過程是很慢,總體感覺就是網站很卡。
May 01 10:50:58.044162[WARNING] [pool www] child 4074, script'/usr/local/nginx/html/quancha/sameip/detail.php' execution timed out(15.129933 sec), terminating
May 01 10:50:58.045725 [WARNING] [pool www] child 4074 exited on signal 15SIGTERM after 90.227060 seconds from start
May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started
說一千道一萬最重要的就是程序里控制好超時,gethostbyname、curl、file_get_contents等函數的都要設置超時時間。
另一個就是多說,這個東西是增加了網站的交互性,但是使用的多了反應就慢了,如果你網站超時且使用了多說是,可以關閉它。
6、自己遇到502的解決辦法:
調整增大php 和Nginx 的backlog數。

㈡ php-fpm 正常啟動,nginx也正常啟動,但是為什麼訪問PHP是502

我覺得應該是sybase_connect連上資料庫。
語法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整數函數種類: 資料庫功能 本函數用來打開與 Sybase 資料庫的連接。
參數 servername 為欲連上的資料庫伺服器名稱。
參數 username 及 password 可省略,分別為連接使用的帳號及密碼。
使用本函數需注意早點關閉資料庫,以減少系統的負擔。
連接成功則返回資料庫的連接代號,失敗返回 false 值。
您試試在將地址後面加了一個?a=1。如果還有不懂的可以去後盾人找找相關的教學視頻看看,多看看不就懂得懂了,希望對你有用,給個採納吧,謝謝

㈢ PHP使用curl的問題

這是PHP對於curl的一個解釋,簡單地說就是,curl是一個庫,能讓你通過URL和許多不同種的伺服器進行勾搭、搭訕和深入交流,並且還支持許多協議。並且人家還說了curl可以支持https認證、http post、ftp上傳、代理、cookies、簡單口令認證等等功能啦。

㈣ 請教php curl 返回 Empty reply from server 原因

看返回的狀態值就知道了,200表示請求成功,伺服器正常運行,502表示伺服器狀態不正常

㈤ php使用curl上傳文件為什麼刪掉一句無法執行

用php-fpm來管理我們的php啟動時,按照如下的配置,就會自動生成/tmp/php-cgi.sock文件,然後再訪問的話就不回出現502 Gateway錯誤了。
配置如下:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

㈥ php通過curl發送post json給https產生502錯誤問題!

curl_setopt(self::$ch,CURLOPT_USERAGENT,"Mozilla/5.0(Macintosh;IntelMacOSX10_10_2)AppleWebKit/600.3.18(KHTML,likeGecko)Version/8.0.3Safari/600.3.18");

加一個這個參數模擬瀏覽器,看看有沒有作用

有些伺服器非瀏覽器訪問就會502

㈦ nginx+php最近總是出現502,然後重啟php-fpm就沒事了,這是什麼原因

用curl獲取HTTP頭,發現502狀態碼就執行重啟php-fpm的命令。
url和cmd根據實際情況改成自己的。然後放到crontab里一分鍾執行一次。

㈧ thinkphp定時腳本--執行控制器「502 Bad Gateway」超時怎麼解決

Nginx的問題,經常出現,我是在php程序抓取的時候先判斷一下抓到的title是不是「502 Bad Gateway」,如果不是則抓取成功,如果是則抓取失敗 重新抓取。
根本的解決辦法也是有的,你可以 網路 「
LNMP一鍵安裝包的Nginx 502 Bad Gateway錯誤可能原因及解決方法

㈨ sae的php的curl功能是受到限制了嗎

curl到國外的webservice上面,發送數據,處理後,再返回數據。
之前使用了美國空間,香港空間,但是總不滿意,無法滿足國內各地區的快速訪問。
所以我現在放到了sae上面運行,但是sae有很多限制的,比如curl的限制如下:
connect_timeout5秒
send_timeout15秒
read_timeout20秒
抓取文件大小8MB
禁用頭,這些頭用戶無法修改Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、Signature、AllowTruncated、ConnectTimeout、SendTimeout、ReadTimeout
目前就是第一條把我給限制住了,後面的限制對我沒有影響。
正是由於他的connect_timeout5秒限制,導致我的curl應用經常返回502/504錯誤提示。
這個出錯比例大概在3%左右,也就是運行100次,就會出錯3次,後來我將curl里的網址由https換成http,這樣出錯概率降低了不少,但還是存在,測試在1%左右。
對於結果我還是不滿意。因為我的curl程序在其他地方(國內三家機房測試)運行都沒有出現過錯誤。
當然我也給sae提出建議,甚至要求升級成付費用戶,都沒有回復。
惟一的一個管理員說跟我要了curl的網址說幫我找台機器測試看看是不是有這回事。
可能有人說你為什麼要在sae這棵樹上弔死?
說實話我看中sae的惟一優勢是他們是5線機房,國內大部分地區的用戶訪問速度非常不錯的。再說我申請通過開發者認證,每個月的雲豆應該足夠使用了。
現在似乎有三種選擇:
1.繼續給sae建議,讓他們修改限制參數
2.優化代碼?我實在想不出如何優化了
3.放棄sae,這不是我最終想要的結果
我的curl代碼是這樣的:
PHPcode
#POST方法
$curl=curl_init($url);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($curl);
#GET方法
$curl=curl_init($url);
curl_setopt($curl,CURLOPT_GET,1);
curl_setopt($curl,CURLOPT_GETFIELDS);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($curl);
------解決方案--------------------
對於限制多多的機房我個人是扭頭就走的.國內你一般只需要考慮電信網通(現在叫聯通?)雙線就行了,其他商用接入都是最後接到他們的網上。如果是用空間我還真沒啥建議,我沒用過任何一款空間,有經濟基礎的話似乎可以考慮美國的主機,或者香港的主機。
放棄sae轉戰阿里雲然後回頭來匯報一下情況好給我參考...哈哈哈
雲豆夠用嗎?我不太相信...
至於curl的優化...這還能優化么...
------解決方案--------------------
你應該給出一些測試用的url

閱讀全文

與phpcurl502相關的資料

熱點內容
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1001
海爾冷櫃壓縮機 瀏覽:416
聯通伺服器如何調試信號 瀏覽:136
stata新命令 瀏覽:941
單調棧演算法python 瀏覽:606
微信解壓游戲怎麼下載 瀏覽:962
忍三伺服器不同如何登上賬號 瀏覽:822
php求積 瀏覽:297