docker+laravel8.49+swoole

7 篇文章 0 订阅

创建laravel项目

  1. 宿主机:

cd /docker/www #进入你的项目目录,目录不存在mkdir先创建
composer create-project laravel/laravel shopby # composer下载创建一个laravel项目,shopby为项目名
chmod -R 777 shopby

  1. 创建docker容器,新创建一个php容器,命名为laravel8.49

docker run -p 9001:9001 -d --name laravel8.49 -v /docker/www:/docker/www --privileged=true php:7.4-fpm
docker exec -it laravel8.49 bash #进入容器
cd /docker/www/shopby
php artisan serve --host=0.0.0.0 --port=5201 #启动laravel项目,绑定5201端口

配置nginx反向代理
宿主机:

docker inspect laravel8.49 | grep “IPAddress” #查看容器ip地址

在这里插入图片描述

vim /docker/nginx/default.conf # 加入下面代码,文件目录名等参数请根据您自己的填写

server {
    listen       80;
    listen  [::]:80;
    server_name  lshopby.com
    root /docker/www/shopby/public;
    index index.php index.html;

    location / {
        try_files $uri @laravels;
    }

    location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravel;
    }
}

docker restart nginx # 重启nginx服务
打开本地绑定域名,访问成功

在这里插入图片描述

swoole组件加速laravel

cd /docker/www/shopby
composer require hhxsv5/laravel-s
在这里插入图片描述

laravel-s扩展包具备自动发现功能(Laravel 5.5 以上版本可用),无需手动在 config/app.php 配置文件中注册,安装完成后,运行如下 Artisan 命令相应脚本和配置文件发布到根目录下:

php artisan laravels publish
在这里插入图片描述

vim .env #修改配置

#.env 加入下面代码
LARAVELS_LISTEN_IP=0.0.0.0
LARAVELS_LISTEN_PORT=5201
LARAVELS_WORKER_NUM=4

swoole方式启动laravel

php bin/laravels start #swoole方式启动
在这里插入图片描述

不使用swoole启动

php artisan serve --host=0.0.0.0 --port=5202 #不使用swoole启动
在这里插入图片描述

ab测试2种方式性能对比

vim /docker/nginxdefault.conf #修改nginx配置设置代理

#lshopby.com指向swoole版的laravel
#rshopby.com指向没有swoole的laravel
upstream laravel_swoole{
   server 172.17.0.6:5201 weight=5 max_fails=3 fail_timeout=30s;
   keepalive 16;
}

server {
    listen       80;
    listen  [::]:80;
    server_name  lshopby.com
    root /docker/www/shopby/public;
    index index.php index.html;

    location / {
        try_files $uri @laravels;
    }

    location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravel_swoole;
    }
}

upstream laravel{
   server 172.17.0.6:5202 weight=5 max_fails=3 fail_timeout=30s;
   keepalive 16;
}

server {
    listen       80;
    listen  [::]:80;
    server_name  rshopby.com
    root /docker/www/shopby/public;
    index index.php index.html;

    location / {
        try_files $uri @laravels;
    }

    location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravel;
    }
}

docker restart nginx # 重启nginx容器

ab测试swoole加速的laravel
ab -n 2000 -c 100 http://lshopby.com:80/
在这里插入图片描述

ab测试没有swoole加速的laravel
ab -n 2000 -c 100 http://rshopby.com:80/
在这里插入图片描述
这个ab测试结果相差还是挺夸张的…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值