1.1、性能对比
使用apache bench工具对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100用户,共100万次Http请求的基准测试中,QPS对比如下:
 

 

QPS(每秒的响应请求数,也即是最大吞吐能力)数值越大,WEB性能越好.
 
1.2、构建web服务器
Swoole1.7.7版本增加了内置Http服务器的支持,通过几行代码即可写出一个异步非阻塞多进程的Http服务器。 Http类的模块是继承了Server类

$http = new Swoole\Http\Server("127.0.0.1", 9501);
// 接受客户端请求事件
$http->on('request', function(swoole_http_request $request, swoole_http_response $response) {
    // 发送到客户端浏览器
     $response->end("<h1>hello swoole</h1>");
});
$http->start();
// 参数说明
$request,Http请求信息对象,包含了header/get/post/cookie/rawContent[put/delete]等相关信息
$response,Http响应对象,支持cookie/header/status等Http操作
 
访问:浏览器访问 记得放行端口,否则无法访问
杀死进程

 

通过ab压测

yum install httpd-tools

 

压测
ab  -n 800  -c 800 -k http://118.25.155.180:6060/
-c 并发的人数
-n 总的请求次数
-k 保持连接
1.3、静态服务器
# 静态资源配置选项
'document_root' => './home/', // v4.4.0以下版本, 此处必须为绝对路径
'enable_static_handler' => true,
注:document_root选项一定要注册静态资源请求的时路径来设置

 静态的文件
运行效果
1.4、动态服务器
高性能的动态解析PHP的服务器
$http->on('request', function ($request, $response) {
     $req_file= $request->server['request_uri'];//获取客户端数据
    if($req_file!="/favicon.ico"){
        $filepath=__DIR__.'/home'.$req_file;//拼接路径
        echo $filepath;
        if(file_exists($filepath)){//判断文件是否存在
            ob_start();//开启缓冲区
            include_once $filepath;//引入文件
            $html=ob_get_contents();//得到缓冲区的内容
            ob_clean();//清空缓冲区
            $state=200;
        }else{
            $state=404;//定义状态码
            $html=json_encode(['code'=>1,'data'=>"",'msg'=>'没有该页面'],256);
        }
    }
    $response->status($state);
    $response->header("Content-Type",'text/html;charset=utf-8');
    $response->end($html);
});

页面PHP文件
封装$_get $_post $_files数据的获取