将 Soketi 部署到 Laravel Forge - 第 2 部分

2022 年 1 月 11 日#forge

在本教程的 第一部分 中,我们学习了如何在 Laravel Forge 服务器上安装和部署 Soketi

按照该教程,Soketi 可通过我们服务器的公共 IP 地址在端口 6001 上访问。在本篇文章中,我们将修改 Soketi 安装,以便可以通过 socket.my-domain.com 访问我们的套接字服务器。我们将通过使用 Nginx 反向代理来实现这一点。

创建 Nginx 模板

首先,我们将在运行 Soketi 的服务器上创建一个 Nginx 模板。Nginx 模板用于自定义 Forge 为新站点创建的 Nginx 配置文件。

为模板命名,例如“Soketi 反向代理”,并定义其内容如下

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/{{ SITE }}/before/*;

server {
    listen {{PORT}};
    listen {{PORT_V6}};
    server_name {{ DOMAINS }};
    server_tokens off;
    root {{ PATH }};

    # FORGE SSL (DO NOT REMOVE!)
    # ssl_certificate;
    # ssl_certificate_key;

    ssl_protocols TLSv1.2;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_dhparam /etc/nginx/dhparams.pem;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    # FORGE CONFIG (DO NOT REMOVE!)
    include forge-conf/{{ SITE }}/server/*;

    location / {
        proxy_pass             http://127.0.0.1:6001;
        proxy_read_timeout     60;
        proxy_connect_timeout  60;
        proxy_redirect         off;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    access_log off;
    error_log  /var/log/nginx/{{ SITE }}-error.log error;
}

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/{{ SITE }}/after/*;

根据此配置,Nginx 将代理对我们子域的任何请求到 127.0.0.1:6001 - Soketi 运行的位置。

创建站点

现在我们已经创建了 Nginx 模板,我们可以转到 Forge 的站点面板并创建一个新站点。创建站点时,请确保将 Nginx 模板更改为新创建的模板。当然,您应该在创建站点时提供您自己的域名

New Site

作为额外的好处,因为我们现在使用 Nginx 来提供 Soketi,我们可以轻松地使用站点的 SSL 面板安装 SSL 证书。

更新我们的配置

最后一步是使用新的配置值更新我们站点的 .env 文件

PUSHER_HOST=socket.laravel.com
PUSHER_PORT=80
作者:James Brooks

Laravel 工程团队负责人,负责构建 ForgeVaporEnvoyer

您可以在 TwitterGitHub我的博客 上找到我。

关注 RSS Feed