前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swoole运行模式加速laravel应用的详细介绍

swoole运行模式加速laravel应用的详细介绍

作者头像
猿哥
发布2019-12-24 17:51:07
1K0
发布2019-12-24 17:51:07
举报

本篇文章给大家带来的内容是关于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应用的详细介绍的详细内容

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP技术大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档