四、搭建Web服务器

4.1、性能对比

使用apache bench工具对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100用户,共100万次Http请求的基准测试中,QPS对比如下:
PHP-swoole搭建Web服务器_服务器
QPS数值越大,WEB性能越好.

4.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操作

PHP-swoole搭建Web服务器_php_02
通过ab压测

yum install -y httpd-tools

PHP-swoole搭建Web服务器_客户端_03
压测

ab -c100 -n1000 -k url地址
-c 并发的人数
-n 总的请求次数

PHP-swoole搭建Web服务器_压测_04

4.3、静态服务器

# 静态资源配置选项

'document_root' => '/data/webroot', // v4.4.0以下版本, 此处必须为绝对路径
'enable_static_handler' => true,

注:document_root选项一定要注册静态资源请求的时路径来设置

PHP-swoole搭建Web服务器_web服务器_05
静态的文件
PHP-swoole搭建Web服务器_php_06
路径
PHP-swoole搭建Web服务器_压测_07
PHP-swoole搭建Web服务器_web服务器_08

4.4、动态服务器

高性能的动态解析PHP的服务器
PHP-swoole搭建Web服务器_php_09
页面PHP文件
PHP-swoole搭建Web服务器_压测_10
封装$_get $_post $_files数据的获取
PHP-swoole搭建Web服务器_压测_11