Rumah >pembangunan bahagian belakang >Golang >Mengapa Persediaan mod_proxy_wstunnel dan Go-websocket Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Persediaan mod_proxy_wstunnel dan Go-websocket Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

DDD
DDDasal
2025-01-01 06:58:10549semak imbas

Why Does My mod_proxy_wstunnel and Go-websocket Setup Fail, and How Can I Fix It?

Mod_proxy_wstunnel dan Go-websocket: Masalah dan Penyelesaiannya

Dalam percubaan untuk menggunakan mod_proxy_wstunnel Apache dengan pelaksanaan go-websocket, pengguna mungkin menghadapi halangan. Seorang pengguna meminta bantuan dalam mengkonfigurasi tetapan yang diperlukan.

Penerangan terperinci tentang isu telah disediakan: semasa proksi terbalik berjaya ditubuhkan, sambungan soket web gagal dimulakan. Konfigurasi pengguna mencerminkan perkara berikut:

<VirtualHost *:80>
    DocumentRoot /var/www/foobar
    ServerName foobar.com
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    ProxyPass /ws/ ws://localhost:8080/ws/
    ProxyPassReverse /ws/ ws://localhost:8080/ws/
    ErrorLog logs/error_log-foobar
    CustomLog logs/access_log-foobar common
    LogLevel debug
</VirtualHost>

Pada mulanya, pengguna menerima respons "403 Dilarang", yang mencadangkan isu semakan asal. Selepas melumpuhkan semakan asal, ralat beralih kepada "400 Permintaan Buruk", menunjukkan bahawa pelayan tidak menerima permintaan naik taraf.

Selepas mengumpul cadangan daripada pelbagai sumber, pengguna mencapai penyelesaian:

  1. Serikan Mengekor: Seperti yang ditunjukkan Aralo, menambahkan garis serong mengekor pada Laluan WebSocket ("/ws/") adalah penting. Apache nampaknya memerlukan permintaan GET yang sah untuk pengendalian WebSocket.
  2. Pesanan ProxyPass: James Henstridge dengan betul menyatakan bahawa susunan arahan ProxyPass adalah penting. ProxyPass untuk "/ws/" harus mendahului "/".
  3. Penyingkiran Cek Asal: Kod contoh go-websocket termasuk semakan asal dalam fungsi ServeWs(), yang telah dialih keluar.

Melaksanakan perubahan ini menyelesaikan isu dan pengguna berjaya mewujudkan sambungan soket web di belakang mod_proxy_wstunnel Apache.

Atas ialah kandungan terperinci Mengapa Persediaan mod_proxy_wstunnel dan Go-websocket Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. 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