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…

目录
相关文章
|
11月前
|
小程序 Shell Linux
workman(二)thinkphp5.0安装websocket插件workerman
首先说明一下我使用的PHP框架是thinkphp5.0。 当然,workerman这个插件不是只有thinkphp5.0可以使用。 具体的安装方法,thinkphp5.0的官方手册中是给出了明确的说明 请移步《thinkphp5.0官方手册》
266 0
|
Java API PHP
(转载)为什么不推荐使用swoole和hyperf官方框架
(转载)为什么不推荐使用swoole和hyperf官方框架
3995 0
|
6月前
|
网络协议 中间件 API
探索PHP的异步编程:Swoole框架的应用
在Web开发领域,PHP以其易用性和广泛的社区支持而闻名。然而,传统的PHP编程模型通常是同步的,这意味着在处理请求时,服务器必须等待任务完成才能响应。随着技术的发展,异步编程逐渐成为提升应用性能的关键。本文将深入探讨如何通过Swoole框架实现PHP的异步编程,从而优化并发处理能力,并提高应用的响应速度和扩展性。
|
11月前
|
小程序 Shell API
workman(三)thinkphp5.0使用workerman
Thinkphp5.0框架如何使用workerman,这个官方手册中同样给出了示例 请移步《thinkphp5.0官方手册》
323 0
|
11月前
|
Dart 前端开发 JavaScript
swoole(一)laravel8配置使用swoole(1)
然后在服务器使用命令行执行 复制代码
343 0
|
11月前
|
前端开发 小程序 JavaScript
swoole(一)laravel8配置使用swoole(3)
Laravel-swoole的优势就是将swoole插件集成至laravel-s插件中,当前laravel-s插件启动的时候,同时持久化的启动了swoole,不需要我们再服务器端再启动一次swoole。
154 0
|
缓存 网络协议 NoSQL
Laravel如何优雅的使用Swoole
Laravel如何优雅的使用Swoole
293 0
|
NoSQL PHP Redis
PHP使用predis/predis包应用实例
PHP使用predis/predis包应用实例
262 0
|
PHP 开发工具
swoole-cli常见问题
由于系统的cacert证书有问题,可能会报该错误,在fpm环境的时候我们需要先下载好cacert.pem文件,并在php.ini中声明路径
465 0
|
设计模式 开发框架 安全
PHP开发框架对比:Laravel、Yii、Tp、Yaf、Swoole
Laravel是一套简洁、优雅的PHP 框架(PHP Web Framework)。让我们可以从杂乱的代码中解脱出来。Laravel可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
700 0