Solution Laravel Reverb does not work in production with Apache

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

Solving Laravel Reverb Production Deployment Issues with Apache: A Guide

Deploying modern, real-time features using technologies like Laravel Reverb into production environments can often introduce unexpected hurdles, especially when integrating with traditional web servers like Apache. Many developers find that what works perfectly on a local development machine simply breaks in the live environment due to differences in network configuration, proxy settings, or SSL handling.

This post addresses a very specific and frustrating scenario: why Laravel Reverb broadcasting fails in production when running behind an Apache server on an AWS Lightsail instance. We will diagnose the likely cause and provide a comprehensive solution to ensure your real-time communication works flawlessly.


The Production Headache: Local Success vs. Live Failure

You are running a Laravel application using Reverb for broadcasting, and everything functions perfectly when tested locally. However, once deployed on an Apache setup—especially when dealing with HTTPS and WebSocket connections—the broadcast mechanism fails, resulting in errors like Pusher error: <!DOCTYPE html>... Not Found.

This discrepancy almost always points to a failure in how the HTTP server (Apache) is configured to proxy the WebSocket traffic required by Reverb to the separate application server running Reverb. The issue isn't usually with the Laravel code itself, but with the middleware layer between the client and the broadcast service.

Diagnosing the Apache/Reverb Conflict

Laravel Reverb runs as a standalone service, typically on a specific port (e.g., 808