3 回答

swoole 框架的性能在使用nginx和php-fpm的时候并没有大的提升,如果使用app_server,据作者说性能较php-fpm有2倍的提升。
app_server.php使用官方例子:
1 2 3 4 5 6 7 8 9 10 | <?php define('DEBUG', 'on'); define("WEBPATH", realpath(__DIR__.'/../')); require dirname(__DIR__) . '/libs/lib_config.php'; $server = Swoole\Network\Protocol\WebServer::create(__DIR__.'/swoole.ini'); $server->setAppPath(WEBPATH.'/apps/'); //设置应用所在的目录 $server->setDocumentRoot(WEBPATH); $server->setLogger(new \Swoole\Log\EchoLog(__DIR__."/webserver.log")); //Logger //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 1, 'max_request' => 5000, 'log_file' => '/tmp/swoole.log')); |
重点来了,nginx配置:
1 2 3 4 5 6 7 8 9 10 11 12 | location / { if (!-e $request_filename){ proxy_pass http://127.0.0.1:8888; } } location ~ .*\.(php|php5)?$ { proxy_pass http://127.0.0.1:8888; # fastcgi_pass 127.0.0.1:8888; # fastcgi_pass unix:/dev/shm/php-cgi.sock; # fastcgi_index index.php; # include fastcgi.conf; } |
其实有了第一条配置就可以正常访问了(除了首页),增加第二条主要是为了访问首页。

- master进程:IO相关处理,又由一下两类线程组成:
- Accept Thread(swoole中叫做MainReactor):用于接受客户端的连接。一个swoole实例只能有一个Accept Thread。
- IO Thread(swoole中叫做ReactorThread):用于接收客户端的请求,并向客户端发送响应。一个swoole实例,可以有多个IO Thread。
- worker进程:用于处理具体
添加回答
举报