You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Apache实现Laravel Reverb WebSocket请求转发?

Apache下Laravel Reverb的WebSocket(wss)转发配置方案

要将wss://mydomain.com/app的请求转发到本地0.0.0.0:8080,需按以下步骤配置Apache:

1. 启用必要的Apache模块

首先确保启用反向代理及WebSocket相关模块:

a2enmod proxy proxy_http proxy_wstunnel rewrite

2. 配置虚拟主机

打开你的域名虚拟主机配置文件(通常位于/etc/apache2/sites-available/your-domain.conf),添加以下配置块:

<VirtualHost *:443>
    ServerName mydomain.com

    # SSL 配置(已有则保留)
    SSLEngine on
    SSLCertificateFile /path/to/your/cert.pem
    SSLCertificateKeyFile /path/to/your/privkey.pem

    # 处理WebSocket升级请求
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /app/(.*) ws://0.0.0.0:8080/app/$1 [P,L]

    # 反向代理配置
    ProxyPass /app http://0.0.0.0:8080/app
    ProxyPassReverse /app http://0.0.0.0:8080/app

    # 设置请求头,对应Nginx配置中的参数
    RequestHeader set Host "%{HTTP_HOST}e" env=HTTP_HOST
    RequestHeader set Scheme "%{REQUEST_SCHEME}e"
    RequestHeader set SERVER_PORT "%{SERVER_PORT}e"
    RequestHeader set REMOTE_ADDR "%{REMOTE_ADDR}e"
    RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e"
    RequestHeader set Upgrade "%{HTTP:Upgrade}e" env=HTTP_UPGRADE
    RequestHeader set Connection "Upgrade" env=HTTP_UPGRADE

    # 其他已有配置(如Laravel的前端路由转发)保留不变
</VirtualHost>

3. 验证配置并重启Apache

检查配置是否合法:

apache2ctl configtest

如果输出Syntax OK,则重启Apache生效:

systemctl restart apache2

关键说明

  • RewriteRule用于识别WebSocket升级请求,将wss协议转发为ws协议到本地端口
  • ProxyPass和ProxyPassReverse负责常规HTTP请求的反向代理
  • 所有RequestHeader配置对应Nginx示例中的头部设置,确保Reverb能正确获取客户端信息

内容的提问来源于stack exchange,提问作者Jivko Jelev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:03:14