搜索
您的当前位置:首页正文

nginx和swoole怎么混合使用

2020-11-03 来源:知库网

基于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服务器,来进行处理。

Top