在本教程的 第一部分 中,我们学习了如何在 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 模板更改为新创建的模板。当然,您应该在创建站点时提供您自己的域名
作为额外的好处,因为我们现在使用 Nginx 来提供 Soketi,我们可以轻松地使用站点的 SSL 面板安装 SSL 证书。
更新我们的配置
最后一步是使用新的配置值更新我们站点的 .env
文件
PUSHER_HOST=socket.laravel.com
PUSHER_PORT=80