为了账号安全,请及时绑定邮箱和手机立即绑定

请问swoole 如何在nginx下运行

/ 猿问

请问swoole 如何在nginx下运行

慕容森 2019-07-22 16:12:22

请问swoole 如何在nginx下运行


查看完整描述

3 回答

?
慕姐829404

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;

        }

其实有了第一条配置就可以正常访问了(除了首页),增加第二条主要是为了访问首页。

 


查看完整回答
反对 回复 2019-07-23
?
偶然的你

swoole是直接加载在php核心中的扩展,不需要web服务器组件支撑,它本身就提供独立的http服务

查看完整回答
反对 回复 2019-07-23
?
慕斯卡3215842

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

查看完整回答
反对 回复 2019-07-23

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信