如何在生产中运行 Laravel Websockets(ubuntu + apache2)?

Posted

技术标签:

【中文标题】如何在生产中运行 Laravel Websockets(ubuntu + apache2)?【英文标题】:How to run Laravel Websockets in production (ubuntu + apache2)? 【发布时间】:2020-12-09 12:27:54 【问题描述】:

我正在使用 Laravel Websockets 包https://beyondco.de/docs/laravel-websockets/getting-started/introduction。

在我的本地开发服务器中,我使用php artisan websockets:server 运行它,它运行良好,但我想知道如何在我的生产服务器(Ubuntu + Apache2)中运行它。

【问题讨论】:

这是一个更适合 Laravel Websockets 论坛的产品支持问题吗? 【参考方案1】:

在运行你的 websocket 服务器后,你需要 proxypass 到你的 apache。如下配置:

<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName your.domain.com
ProxyPass / http://localhost:6001/
ProxyPassReverse / http://localhost:6001/
</VirtualHost>

将 6001 更改为您的 websocket 端口。

要在后台运行,您需要使用 nohup 或 pm2 在后台添加您的 websocket 服务器。示例:

pm2 start "php artisan websockets:server"

或使用 nohup

nohup php artisan websockets:server

【讨论】:

我建议有 supervisord ,这样你就可以设置 php artisan websockwt:serve 我还需要在生产中运行php artisan websockets:serve 吗?或者只是 apache 配置就足够了? @Fantasmic 你需要使用 supervisord、pm2 或 nohup 运行它 谁能帮忙如何在nginx Server中运行?【参考方案2】:

你可以使用 supervisord ,你可以安装并有配置文件来运行命令 php artisan web socket:serve

【讨论】:

以上是关于如何在生产中运行 Laravel Websockets(ubuntu + apache2)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中将 Vue.js 切换到生产模式?

Laravel 5 如何从生产模式切换

可以在生产 laravel 网站上运行 php artisan :clear 命令吗? [关闭]

Laravel 4 - 用于生产的MySQL用户配置

如何在 laravel 中为开发和生产使用不同的 cors 配置

如何在生产环境中使用我创建的 Laravel 包?