本篇文章给大家带来的内容是关于swoole运行模式加速laravel应用的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、Swoole
Swoole号称重新定义了PHP,它是一个PHP扩展,使得PHP可以使用异步的方式执行,就像node一样,而且还能使用socket,为PHP提供了一系列异步IO、事件驱动、并行数据结构功能。 Swoole4支持完整的协程编程模式,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步IO 。 nodejs能实现的swoole几乎都能实现,而且性能比nodejs更高,毕竟nodejs是单线程的无法充分发挥cpu性能,swoole是多线程的可以充分发挥cpu的性能。 Swoole高效跟传统的web开发有什么区别,除了传统的LAMP/LNMP同步开发模式,swoole的异步开发模式是怎样的,如何保持高效?
二、传统web开发模式 PHP web开发采用的方式是LAMP/LNMP架构,即Linux、Nginx,Mysql和PHP。这里以nginx来举例,大致结构为:
<img src="https://pic1.zhimg.com/80/v2-a2598310612af62fae2fe07355954884_hd.jpg" alt="" width="756" normal"="" style="box-sizing: border-box; border: 0px; vertical-align: middle; cursor: pointer;">
图一是使用swoole作为应用服务器,图二是apache服务器 测试环境在虚拟机中,电脑配置也较差,性能没有完全发挥出来,可以看到apache只完成197次请求就扛不住压力了,swoole HTTP服务 完成了压测,性功完全碾压apache服务器。
七、使用Nginx代理
swoole在官网也提到过:swoole_http_server对Http协议的支持并不完整,建议仅作为应用服务器。并且在前端增加Nginx作为代理。 那么,我们就增加需要配置nginx.conf里的server:
1 server {
2
3 listen 80;
4
5 server_name your.domain.com;
6
7 root /path/to/laravel/public;
8
9 index index.php;
10
11
12
13 location = /index.php {
14
15 # Ensure that there is no such file named "not_exists"
16
17 # in your "public" directory.
18
19 try_files /not_exists @swoole;
20
21 }
22
23
24
25 location / {
26
27 try_files $uri $uri/ @swoole;
28
29 }
30
31
32
33 location @swoole {
34
35 set $suffix "";
36
37
38
39 if ($uri = /index.php) {
40
41 set $suffix "/";
42
43 }
44
45
46
47 proxy_set_header Host $host;
48
49 proxy_set_header SERVER_PORT $server_port;
50
51 proxy_set_header REMOTE_ADDR $remote_addr;
52
53 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
54
55
56
57 # IF https
58
59 # proxy_set_header HTTPS "on";
60
61
62
63 proxy_pass http://127.0.0.1:1215$suffix;
64
65 }
66
67 }
配置可参考swoole方文档官 Nginx/Apache配置 至此,大功告成,你可以像平常一样访问你的网站了。
八、使用swoole和传统php开发的缺点 本文主要介绍了使用swoole作为laravel的应服务器,最后说下使用swoole和传统php开发的缺点。 1、更难上手。这要求开发人员对于多进程的运行模式有更清晰的认识 2、更容易内存泄露。在处理全局变量,静态变量的时候一定要小心,这种不会被GC清理的变量会存在整个生命周期中,如果没有正确的处理,很容易消耗完所有的内存。在php-fpm下,php代码执行完内存就会被完全释放。
以上就是swoole运行模式加速laravel应用的详细介绍的详细内容