swoole(一)laravel8配置使用swoole(2)

简介: 将上边我使用xxx代替的部分改成你自己的信息。特别说明一下:我这里使用了ssl证书,如果您没有相关的配置,把https那部分换掉就好。具体的配置含义,请参考官方文档:

我测试得到的结果:

前端:

image.png

后端:

image.png

这里就是使用原生代码测试一下,我们安装的swoole是否可以访问。

9:配置nginx支持webscoket

ini

复制代码

# webscoket配置
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
upstream laravels {
    # Connect IP:Port # 此处的端口号要与laravel-s启动的端口号相同
    server 0.0.0.0:5200 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 16;
}
# upstream swoole {
#     # Connect IP:Port
#     server 0.0.0.0:5200 weight=5 max_fails=3 fail_timeout=30s;
#     # Connect UnixSocket Stream file, tips: put the socket file in the /dev/shm directory to get better performance
#     #server unix:/yourpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
#     #server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
#     #server 192.168.1.2:5200 backup;
#     keepalive 16;
# }
server {
        listen       443;
        server_name  xxx.xxx;#填写你的域名
        index index.html index.htm index.php;#默认打开页面
        root   /xx/xx/xxx/xxx/xx/public;#你的index.php路径
        # error_page 404 /index.html;
        autoindex off;
        #https配置
        ssl on;
        ssl_certificate   xxx/xxxx/xxxx_xxxx.xxx.pem;
        ssl_certificate_key  xxx/xxxx/xxxx_xxxx.xxx;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        #开启gzip功能,加快网站打开速度
        gzip on; 
        #开启gzip静态压缩功能
        gzip_static on; 
        #gzip缓存大小
        gzip_buffers 4 16k;
        #gzip http版本
        gzip_http_version 1.1;
        #gzip 压缩级别 1-10 
        gzip_comp_level 2;
        #gzip 压缩类型
        gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;# 是否在http header中添加Vary: Accept-Encoding,建议开启gzip_vary on;
        proxy_read_timeout 60s;
        location ~ .php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        # location /
        # {
        #         #如果是二级目录就用 rewrite ^/文件夹名称/(.*)$ /index.php?s=/$1 last;)
        #         if (!-e $request_filename)
        #         {
        #                 rewrite ^(.*)$ /index.php?s=/$1 last;
        #                 break;
        #         }
        # }
        # Nginx 处理静态资源,LaravelS 处理动态资源
        location / {
                index index.html;
                # vue 动态路由原始配置
                # try_files $uri $uri/ /index.html;
                # laravels 结合vue动态路由配置
                try_files $uri $uri @laravels/ /index.html;
        }
        # Http and WebSocket are concomitant, Nginx identifies them by "location"
        # !!! The location of WebSocket is "/ws"
        # Javascript: var ws = new WebSocket("ws://todo-s.test/ws");
        # 处理 WebSocket 通信
        location /websocket {
                proxy_connect_timeout 60s;
                proxy_send_timeout 60s;
                # proxy_read_timeout: Nginx will close the connection if the proxied server does not send data to Nginx in 60 seconds; At the same time, this close behavior is also affected by heartbeat setting of Swoole.
                proxy_read_timeout 60s;
                proxy_http_version 1.1;
                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_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_pass http://127.0.0.1:5200; #此处的端口号要与laravel-s启动的端口号相同
        }
        # laravels 配置
        location @laravels {
                # proxy_connect_timeout 60s;
                # proxy_send_timeout 60s;
                # proxy_read_timeout 60s;
                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://127.0.0.1:5200; #此处的端口号要与laravel-s启动的端口号相同
        }
}

将上边我使用xxx代替的部分改成你自己的信息。

特别说明一下:我这里使用了ssl证书,如果您没有相关的配置,把https那部分换掉就好。

具体的配置含义,请参考官方文档:

github.com/hhxsv5/lara…

目录
相关文章
|
小程序 网络安全 Windows
swoole(二)ws与wss的区别
关于ws与wss的区别这里简单的说一下我目前的见解。 如果你有更多的见解欢迎在下方留言讨论。 最简单的理解就是: 服务器上服务端用的是:websocket协议(支持客户端的ws访问) 服务器上服务端用的是:websocket协议+TLS(支持客户端的wss访问) 客户端上用的是: ws协议或者wss协议 Wss与ws其实就和http与https的关系,wss需要验证域名证书,ws不需要验证域名证书。 这个其实都不重要。我们在开发的时候关系不是很大。 下边的才是我要说的重点: Ws链接可以使用IP+端口号的形式访问。 Wss链接只能使用域名的形式访问,因为服务器端需要通过域名来找对应的ssl证书
1181 0
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
4月前
|
缓存 NoSQL 算法
高并发秒杀系统实战(Redis+Lua分布式锁防超卖与库存扣减优化)
秒杀系统面临瞬时高并发、资源竞争和数据一致性挑战。传统方案如数据库锁或应用层锁存在性能瓶颈或分布式问题,而基于Redis的分布式锁与Lua脚本原子操作成为高效解决方案。通过Redis的`SETNX`实现分布式锁,结合Lua脚本完成库存扣减,确保操作原子性并大幅提升性能(QPS从120提升至8,200)。此外,分段库存策略、多级限流及服务降级机制进一步优化系统稳定性。最佳实践包括分层防控、黄金扣减法则与容灾设计,强调根据业务特性灵活组合技术手段以应对高并发场景。
1045 7
|
3月前
|
XML API 开发者
易贝商品API接口,开发者详解与使用指南
eBay 商品 API 为开发者提供商品搜索、详情获取、订单管理等功能,包含 Finding、Shopping、Trading 等接口。支持按关键词搜索、获取商品描述与价格、处理交易流程等,适用于电商分析与店铺运营。调用需注册获取 API 权限与密钥,构建请求并解析 JSON/XML 数据。附 Python 示例代码展示如何获取商品详情信息。
|
9月前
|
JSON 小程序 JavaScript
原生微信小程序笔记完整总结
原生微信小程序笔记完整总结
255 1
|
11月前
|
存储 C语言
【数据结构】顺序表(c语言实现)(附源码)
本文介绍了线性表和顺序表的基本概念及其实现。线性表是一种有限序列,常见的线性表有顺序表、链表、栈、队列等。顺序表是一种基于连续内存地址存储数据的数据结构,其底层逻辑是数组。文章详细讲解了静态顺序表和动态顺序表的区别,并重点介绍了动态顺序表的实现,包括初始化、销毁、打印、增删查改等操作。最后,文章总结了顺序表的时间复杂度和局限性,并预告了后续关于链表的内容。
283 3
|
11月前
|
存储 弹性计算 固态存储
阿里云服务器按量付费是什么?划算吗?
阿里云ECS按量付费模式,先使用后付费,按小时结算,适合临时扩展、测试、电商抢购等短期应用。开通需账户余额不低于100元。实例、镜像、云盘、带宽等支持按量计费,价格根据配置和地区而异。可随时转为包年包月。
1875 1
|
Dart 前端开发 JavaScript
swoole(一)laravel8配置使用swoole(1)
然后在服务器使用命令行执行 复制代码
574 0
|
SQL 关系型数据库 MySQL
MySQL数据库——触发器-介绍、语法(创建,查看,删除)
MySQL数据库——触发器-介绍、语法(创建,查看,删除)
1034 0