Laravel Octane启动时如何自定义指定服务监听的主机名?
Laravel Octane 修改监听地址及域名访问配置方案
核心问题解答
可以直接在启动时指定监听的主机名,命令如下:
php artisan octane:start --host=your-domain.com --port=8000
注意:该方式需要域名已解析到当前服务器,且服务器本地hosts配置了域名和对应IP的映射,否则会启动失败,生产环境更推荐使用下方的反向代理方案,灵活性和安全性更高。
推荐生产环境配置方案
不需要直接将Octane绑定域名,只需要让Octane监听服务器本地或所有网卡地址,通过Nginx/Apache反向代理转发请求即可实现域名访问。
1. 修改Octane默认监听配置
两种修改方式二选一即可:
- 临时修改:启动时加参数,监听所有网卡请求
php artisan octane:start --host=0.0.0.0 --port=8000 - 永久修改:编辑
config/octane.php配置文件,找到你使用的服务端(Swoole/RoadRunner/FrankenPHP)对应的配置项,修改host值为0.0.0.0,port值为指定端口,之后直接执行php artisan octane:start即可生效。
2. Nginx 反向代理配置
在Nginx的站点配置目录新增虚拟主机配置,示例如下:
server { listen 80; server_name your-domain.com; # 替换为你的实际域名 server_tokens off; location / { proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8000; # 和Octane监听的端口保持一致 proxy_read_timeout 600s; proxy_send_timeout 600s; proxy_connect_timeout 600s; } }
配置完成后执行nginx -s reload重载配置,将域名解析到服务器公网IP后,即可直接通过http://your-domain.com访问服务,无需携带端口。如需HTTPS访问,补充443端口的SSL证书配置即可。
3. Apache 反向代理配置
首先启用Apache的代理相关模块:
a2enmod proxy proxy_http proxy_wstunnel
新增虚拟主机配置,示例如下:
<VirtualHost *:80> ServerName your-domain.com # 替换为你的实际域名 ProxyPass / http://127.0.0.1:8000/ ProxyPassReverse / http://127.0.0.1:8000/ ProxyPreserveHost On # 如需支持WebSocket请求添加以下配置 ProxyPass "/ws" "ws://127.0.0.1:8000/ws" ProxyPassReverse "/ws" "ws://127.0.0.1:8000/ws" <Proxy *> Allow from all </Proxy> </VirtualHost>
配置完成后重启Apache服务即可生效。
生产环境注意事项
- 建议将Octane注册为systemd系统服务,实现进程异常重启、开机自动启动,避免手动启动的不稳定问题。
- 如使用反向代理方案,无需开放Octane监听端口的公网访问权限,仅开放Web服务器的80、443端口即可,安全性更高。
内容的提问来源于stack exchange,提问作者Omarname
相关产品推荐
相关产品推荐

