nginx+swoole

在此之前建议知道nginx与PHP的通讯原理

一、nginx快速安装

首先安装必要的库(nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库)

$ yum install -y zlib zlib-devel pcre pcre-devel openssl openssl-devel
$ yum install nginx

二、nginx+swoole高效处理

Swoole用作HttpServer虽然性能已经足够强大,但是还是不能直接替代传统的Web服务器比如Nginx。Swoole的强大之处只在于处理PHP逻辑的能力上。因此,当我们需要开发Web服务的时候,最合适的方法就是结合使用Nginx和Swoole,从而取代fpm。静态文件还是交给nginx处理,php请求由swoole处理

我们可以对客户端请求做一个判定。如果请求了一个实际存在的文件,那么就通过Nginx直接访问文件;如果不存在,那就把这个请求代理给Swoole的HttpServer,然后在Swoole层做路由处理和PHP文件解析。这样,配置文件可以这样编写:

nginx配置:

server {
    listen  80;
    root  www;
    location / {
        if (!-e $request_filename){
            proxy_pass http://127.0.0.1:9501;
        }
    }
}

9501就是swoole服务器监听的地址。root设置为静态文件的目录。当请求静态文件是由Nginx直接处理,当请求的文件不存在时,发送给Swoole服务器,来进行处理。根据情况来进行nginx的配置

资料

PHP和Nginx的通信方式

nginx和php-fpm 是使用 tcp socket 还是 unix socket ?

Nginx与PHP交互过程 + Nginx与PHP通信的两种方式

nginx php-fpm 分别安装在不同的机器(理解nginx和php-fpm)

提示:

两种通信方式:unix socket 和 tcp socket

反向代理proxy_pass时:走的是http协议

Last updated