Heim >Backend-Entwicklung >PHP-Tutorial >Laravel Reverb in der Produktionsumgebung

Laravel Reverb in der Produktionsumgebung

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-30 14:32:151019Durchsuche

Laravel Reverb in Production Environment

Hallo, bevor Sie mit diesem Tutorial beginnen, empfehle ich Ihnen, den ultimativen Leitfaden für Laravel Reverb: Echtzeitbenachrichtigungen zu lesen, da in diesem Tutorial davon ausgegangen wird, dass Sie Laravel Reverb bereits lokal eingerichtet haben und funktionieren.

Grundkonzepte

Zuerst ist es wichtig zu verstehen, wie Portverbindungen funktionieren. Laravel Reverb verwendet zwei Ports: einen für die Verbindung zum WebSocket und einen anderen für die Serverkommunikation.

In diesem Fall verwenden wir Port 443 für den öffentlichen Zugriff. Dieser Port ist für Benutzer, die auf die Webseite zugreifen, von entscheidender Bedeutung, da er sicheren HTTPS-Verkehr verarbeitet.

Für die WebSocket-Kommunikation verwenden wir Port 6001. Dieser Port muss nicht öffentlich zugänglich sein, da er vom Server nur intern für die Echtzeitkommunikation verwendet wird.

Konfigurationen

Jetzt ändern wir .env

REVERB_HOST="your.domain.com" # your domain name here
REVERB_PORT=443 # The public port used by all clients on your website
REVERB_SCHEME=https # Required for prod environment

Fügen Sie in Ihrer Nginx-Konfiguration den nächsten Code ein.

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name your.server.name;
  {{ssl_certificate_key}}
  {{ssl_certificate}}

 location /app/ {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_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";
    proxy_pass http://0.0.0.0:6001;
}
location /apps {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_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";
    proxy_pass http://0.0.0.0:6001;
}
}

Was machen wir hier? Dieses Setup leitet den gesamten WebSocket-Verkehr sicher vom öffentlich zugänglichen Port 443 zum internen WebSocket-Server an Port 6001 um und ermöglicht so eine sichere und effiziente Echtzeitkommunikation zwischen Clients und dem Server.

Für Apache-Konfigurationen können Sie diese Beiträge lesen.

  • https://github.com/laravel/framework/discussions/50675
  • https://github.com/laravel/reverb/issues/107#issuecomment-2019340122

Nach Abschluss der Konfiguration besteht der nächste Schritt darin, den Dienst zu starten. In einem realen Szenario sollten Sie einen Prozessmanager wie Supervisor einsetzen, um sicherzustellen, dass der Dienst kontinuierlich läuft und bei Bedarf automatisch neu gestartet wird.

Zu Testzwecken können Sie den Befehl jedoch manuell über die Befehlszeile ausführen.

php artisan reverb:start --port=6001 --debug

Jetzt sind wir bereit, mit WebSocket in einer Produktionsumgebung zu arbeiten. Denken Sie daran, den Dienst vor dem Test neu zu starten und den Cache zu leeren, um sicherzustellen, dass alles reibungslos läuft.

Ein Beitrag, der uns helfen kann, ein tieferes Verständnis für dieses Thema zu erlangen.

  • https://laravel.com/docs/11.x/reverb#produktion
  • https://medium.com/@saddanfah/how-to-use-laravel-reverb-in-produktionsserver-d89e9670b76a

Ich hoffe, das hilft Ihnen beim Einstieg! Wir sehen uns im nächsten Beitrag.

Das obige ist der detaillierte Inhalt vonLaravel Reverb in der Produktionsumgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn