Rumah >pembangunan bahagian belakang >tutorial php >Laravel Reverb dalam Persekitaran Pengeluaran

Laravel Reverb dalam Persekitaran Pengeluaran

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-30 14:32:151036semak imbas

Laravel Reverb in Production Environment

Hai, sebelum memulakan tutorial ini, saya syorkan membaca Panduan Terbaik untuk Laravel Reverb: Pemberitahuan Masa Nyata, kerana tutorial ini menganggap anda sudah menyediakan Laravel Reverb dan berfungsi secara tempatan.

Konsep Asas

Pertama, penting untuk memahami cara sambungan port berfungsi. Laravel Reverb menggunakan dua port: satu untuk menyambung ke WebSocket dan satu lagi untuk komunikasi pelayan.

Dalam kes ini, kami akan menggunakan port 443 untuk akses awam. Port ini penting untuk pengguna yang mengakses halaman web kerana ia mengendalikan trafik HTTPS yang selamat.

Untuk komunikasi WebSocket, kami akan menggunakan port 6001. Port ini tidak perlu diakses secara umum kerana ia hanya digunakan secara dalaman oleh pelayan untuk komunikasi masa nyata.

Konfigurasi

Sekarang, mari kita ubah suai .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

Mereka dalam konfigurasi nginx anda letakkan kod seterusnya.

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;
}
}

Apa yang kita buat di sini? Persediaan ini mengubah hala semua trafik WebSocket dengan selamat dari port 443 yang menghadap awam ke pelayan WebSocket dalaman pada port 6001, membolehkan komunikasi masa nyata yang selamat dan cekap antara pelanggan dan pelayan.

Untuk konfigurasi Apache, anda boleh membaca siaran ini.

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

Selepas melengkapkan konfigurasi, langkah seterusnya ialah memulakan perkhidmatan. Dalam senario dunia sebenar, anda harus menggunakan pengurus proses, seperti Penyelia, untuk memastikan perkhidmatan berjalan secara berterusan dan dimulakan semula secara automatik jika perlu.

Namun, untuk tujuan ujian, anda boleh menjalankan arahan secara manual daripada baris arahan.

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

Kini kami bersedia untuk bekerja dengan WebSocket dalam persekitaran pengeluaran. Ingat untuk memulakan semula perkhidmatan dan kosongkan cache sebelum menguji untuk memastikan semuanya berjalan lancar.

Siaran yang boleh membantu kami memperoleh pemahaman yang lebih mendalam tentang topik ini.

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

Saya harap ini membantu anda bermula! Jumpa lagi di post seterusnya.

Atas ialah kandungan terperinci Laravel Reverb dalam Persekitaran Pengeluaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn