Glover
  • Introduction
  • Video Guide
    • How to Setup Vendor
  • Usage Flows (FlowCharts)
  • Firebase
    • Firebase
    • Firebase firestore database
    • Firebase Security
    • Firebase Storage
    • Firestore indexes
    • Chat & Live tracking
  • Backend
    • NOTICE
    • VPS/Shared Hosting
    • Installation
    • Database Configuration
    • GUI Installer
    • Timezone
    • Firebase
      • Firebase Forgot password
    • Web Notification
    • Reskin Mobile App
    • Change Backend Color
    • Terminal
      • Commands
    • Screenshots
    • Auto-assignment
    • Order schedule
    • CRON job
    • Clear Data (Users/Orders etc)
    • Email Server Settings
    • SMS Gateway
    • Payment Gateways
    • Webhooks - Payment gateway
    • Vendor Subscription
    • Language / Translation
    • HOW TO UPDATE
    • In-App Live chat/support
    • Geocoding and Place search
    • Features
      • Firebase/Notification Delay
      • Fleet Management
      • Loyalty points
      • Home Screen Design
      • Featured Vendors
      • Trip recalculation/Outstanding payments
      • Switch between Taxi/Regular Driver
      • Data Translation - Backend
  • 🔥Supervisor Setup - VPS
    • Introduction
    • Install & Setup Supervisor
    • Taxi Booking
    • How to verify Taxi driver Vehicle
    • Websocket Setup
      • Laravel reverb Config
  • Flutter App
    • Getting Started
    • Steps
    • Directory Structure
    • Change App Name & ID
    • Change App icon & splash
    • App Color / Theme
    • Connect To Backend
    • Firebase
    • Firebase Auth - Phone
    • Firebase Phone OTP - Android
    • Firebase Phone OTP - iOS
    • Firebase Notification iOS
    • Share link - Firebase dynamic link
    • Social Media Login
      • Google login
      • Facebook Login
      • Sign-In with Apple
    • Google Map
    • Change App Language
    • Notification Sound
    • Custom Translation ~ 1.4.8
    • Custom Translation +1.5.0
    • Change App Font
    • Running on VS Code
    • Running on Android Studio
    • Generate Android Release App
    • Upload to Apple App Store
    • Screenshots
  • Demo Accounts
  • FAQs
    • Backend Image not working
    • Backend Backup not working
    • Upgrade without losing data
    • Backend Rollback
    • Blank Home screen
    • Custom Token
    • Product price zero(0) in details
    • Auto-cancel Not working
    • Pharmacy vendor
    • Vendor default rating
    • App logins
    • Error ==> type 'String' is not a subtype of type 'int'
    • NDK version error
    • Push Notification
    • Delivery Zone Map error
    • HOW TO UPDATE ADMINEND
    • Driver app rejected by Google
    • Cron job error
    • Auth pages Not working - App
    • Update App Translation
  • HOW-TO
    • Onboarding Settings
    • Setup Parcel Vendor
    • Set Vendor Custom Fees
    • Digital Products
    • Setup Taxi driver
    • Multiple Currency Taxi support
    • How Prescription Order works
    • Earning
      • Vendors
      • Drivers
    • QR Code Login
    • Single Vendor Mode
    • Enforce CASH Payment For Delivery Fee Only
    • System Contact Email
    • Driver Matching Flow
  • Extensions
    • Driver tracking extensions
    • Paymongo Gateway
    • Mercadopago Gateway
    • Nagad [Bangladeshi]
    • Paytrail
    • Paymaya Gateway
    • Emailer
    • POS
      • Mobile App
        • Requirement
        • Flutter SDK
        • Change App Name & ID
        • Connect To Backend
        • App build & release
      • Change logs
    • Glover Website
    • External Notifier
      • Slack Setup
      • Telegram Setup
    • Instamojo - Payment
  • Upgrades
    • How to update
    • Important: Backend VPS/Shared hosting
    • Older Version Upgrade Instructions
      • Upgrade to 1.2.1
      • to 1.2.3
      • ~ 1.3.2
      • to 1.3.1
      • to 1.3.3
      • to 1.3.4
      • to 1.3.5
      • to 1.3.7
      • to 1.3.8
      • to 1.3.9
      • to 1.4.0
      • to 1.4.1
      • to 1.4.2
      • to 1.4.3
      • to 1.4.5
      • to 1.4.6
      • to 1.4.7
      • 1.4.8
    • 1.5.0 - 1.5.9
      • 1.5.0
      • 1.5.1
      • 1.5.2
      • 1.5.3
      • 1.5.4
      • 1.5.5
      • 1.5.5-fix-1
      • 1.5.6
      • 1.5.7
      • 1.5.8
      • 1.5.9
    • 1.6.0 - 1.6.70
      • 1.6.0
      • 1.6.1
      • 1.6.2
      • 1.6.3
      • 1.6.4
      • 1.6.5
      • 1.6.6
      • 1.6.62
      • 1.6.63
      • 1.6.70
    • 1.7.00 - 1.7.21
      • 1.7.00
      • 1.7.01
      • 1.7.02
      • 1.7.10
      • 1.7.20
      • 1.7.21
    • 1.7.30 - 1.7.60
      • 1.7.30
      • 1.7.31
      • 1.7.40
      • 1.7.41
      • 1.7.42
      • 1.7.43
      • 1.7.44
      • 1.7.45
      • 1.7.50
      • 1.7.51
      • 1.7.60
    • 1.7.70
  • Change logs
Powered by GitBook
On this page
  • 🔧 NGINX Configuration
  • 🔧 Apache Configuration

Was this helpful?

  1. Supervisor Setup - VPS
  2. Websocket Setup

Laravel reverb Config

After setting up reverb to be running on your vps, there are few changes you need to make all your server route websocket request to your laravel reverb.

🔧 NGINX Configuration

To proxy WebSocket requests to Laravel Reverb via Nginx, you must edit your virtual host (vhost) file or Nginx site configuration.

Add the following location block inside your server block:

location /app {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_s_header SERVER_PORT $server_port;
    proxy_set_header REMOTE_ADDR $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";

    # CORS headers for WebSocket
    add_header Access-Control-Allow-Origin *; # Or specify your domain
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'Origin, Content-Type, Accept, X-Requested-With';

    proxy_pass http://127.0.0.1:6001;
}

⚠️ Important

Make sure the IP address and port in proxy_pass match the Reverb server host and port defined in your .env file:

REVERB_SERVER_HOST=127.0.0.1
REVERB_SERVER_PORT=6001

If you change these values in .env, you must also update the Nginx configuration to reflect the new host and port.

After editing the config:

sudo nginx -t     # Test the config
sudo systemctl reload nginx

🔧 Apache Configuration

If you are using Apache, ensure the following is added to your virtual host configuration:

<VirtualHost *:80>
    ServerName yourdomain.com

    # Usual Laravel setup...
    DocumentRoot /var/www/yourproject/public

    <Directory /var/www/yourproject/public>
        Options Indexes FollowSyLinks
        AllowOverride All
        Require all granted
    </Directory>

    # WebSocket proxy configuration
    ProxyPass "/app" "http://127.0.0.1:6001/app"
    ProxyPassReverse "/app" "http://127.0.0.1:6001/app"

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /app/(.*)           ws://127.0.0.1:6001/app/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /app/(.*)           http://127.0.0.1:6001/app/$1 [P,L]

    # Optional CORS headers
    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS"
    Header always set Access-Control-Allow-Headers "Origin, Content-Type, Accept, X-Requested-With"
</VirtualHost>

⚠️ Important

As with Nginx, you must ensure that the IP and port (127.0.0.1:6001) align with:

REVERB_SERVER_HOST=127.0.0.1
REVERB_SERVER_PORT=6001

Apply changes and restart Apache:

sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite
sudo systemctl restart apache2

PreviousWebsocket SetupNextGetting Started

Last updated 2 days ago

Was this helpful?

🔥