首頁  >  文章  >  php框架  >  nginx和swoole怎麼混合使用

nginx和swoole怎麼混合使用

(*-*)浩
(*-*)浩原創
2019-12-14 14:06:302611瀏覽

nginx和swoole怎麼混合使用

基於epoll的Nginx

#有了epoll,理論上1個進程就可以無限數量的連接,而且無需輪詢,真正解決了c10k的問題。      (建議學習: swoole視訊教學

Nginx是基於epoll的,非同步非阻塞的伺服器程式。自然,Nginx能夠輕鬆處理百萬級的並發連接,也就無可厚非了。

swoole如何處理高並發

①Reactor模型介紹

IO復用非同步非阻塞程式使用經典的Reactor模型,Reactor顧名思義就是反應器的意思,它本身不處理任何資料收發。只是可以監視一個socket(也可以是管道、eventfd、訊號)句柄的事件變化。

註:什麼是句柄?句柄英文為handler,可以形象的比喻為鍋柄、湯匙柄。也就是資源的唯一識別碼、資源的ID。透過這個ID可以操作資源。

Reactor只是一個事件產生器,實際對socket句柄的操作,如connect/accept、send/recv、close是在callback中完成的。

因為reactor是基於epoll,所以每個reactor可以處理無數個連線請求。 如此,swoole就輕鬆的處理了高並發。

nginx設定:

server {
    listen  80;
    server_name  www.swoole.com;
    root  /data/wwwroot/www.swoole.com;
    location / {
        if (!-e $request_filename){
            proxy_pass http://127.0.0.1:9501;
        }
    }
}

9501就是swoole伺服器監聽的位址。 root設定為靜態檔案的目錄。當請求靜態檔案是由Nginx直接處理,當請求的檔案不存在時,傳送給Swoole伺服器,來處理。

以上是nginx和swoole怎麼混合使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn