我是用nginx轉(zhuǎn)發(fā)到workerman,
經(jīng)過測試,訪問http是訪問https的qps十倍左右.
就算ssl加密有消耗也不會這么多吧?
后來又測試tp框架下http和https的差距,只是60/30的差距
現(xiàn)在懷疑問題和proxy_pass轉(zhuǎn)發(fā)有關(guān)系,請問有沒有什么方法優(yōu)化
你這個測試場景,可以分成以下幾個耗時環(huán)節(jié):
① HTTP 請求(https 或者 http,前者開銷要大很多)
② Nginx 轉(zhuǎn)發(fā)和回傳(proxy_pass 或者 fastcgi_pass,前者開銷大一些,但總體影響應(yīng)該不大)
③ PHP 程序執(zhí)行過程(TP 或者 WM)
重點在第 ③ 個環(huán)節(jié),倒不是 PHP 程序本身效率高低的問題(雖然 TP 框架復(fù)雜一點),主要是兩者的進(jìn)程模型不一樣,TP 是在 PHP-FPM 里面跑的,受進(jìn)程數(shù)的限制,測試過程中會有很多 request 處于等待狀態(tài);而 WM 是單進(jìn)程異步處理,更適合高并發(fā),在你這個測試規(guī)模下幾乎不會有等待。
所以再看你的測試結(jié)果,WM 時 http 比 https 性能高十倍,這個大體上可以看做是 SSL 真實的性能比,而在 TP 時,即使用 http,第 ① 個環(huán)節(jié)全速跑起來,到了第 ③ 個環(huán)節(jié)還是堵住了,所以無法達(dá)到十倍。