


Bagaimana untuk mengendalikan sambungan WebSocket dengan mod_proxy_wstunnel?
Jul 05, 2025 am 12:47 AMModul mod_proxy_wstunnel adalah kunci kepada pengendalian Apache mengenai sambungan WebSocket, yang memastikan permintaan itu dikemukakan dengan betul ke backend dan sambungan sentiasa dibuka. 1. Mula -mula membolehkan modul mod_proxy dan mod_proxy_wstunnel, dan mulakan semula perkhidmatan Apache; 2. Gunakan ws: // atau wss: // protokol apabila mengkonfigurasi VirtualHost untuk memastikan pemadanan jalan; 3. Tambahkan pemendapan permintaan untuk menubuhkan pengepala dan penyambungan sambungan untuk menyokong penukaran protokol; 4. Konfigurasi sijil yang sah dan tunjuk ke WSS: // alamat apabila menggunakan SSL/TLS; 5. Uji sambungan melalui konsol penyemak imbas, WSCAT dan alat lain, dan periksa masalah penyelesaian masalah log Apache. Selagi peningkatan protokol dan pemetaan jalan dikonfigurasi dengan betul, WebSocket dapat berjalan dengan stabil.
Apabila mengendalikan sambungan WebSocket, jika anda menggunakan Apache sebagai pelayan proksi terbalik, modul mod_proxy_wstunnel adalah komponen utama yang anda perlukan. Ia membolehkan anda memajukan permintaan WebSocket dengan betul ke pelayan aplikasi backend tanpa mengganggu sambungan atau penurunan ke pengundian yang panjang.
Berikut adalah beberapa perkara utama dan cadangan konfigurasi yang perlu diberi perhatian dalam operasi sebenar.
Dayakan modul yang diperlukan
Sebelum memulakan konfigurasi, pastikan Apache anda mempunyai modul berikut yang didayakan:
-
mod_proxy
-
mod_proxy_wstunnel
Anda boleh mengaktifkan modul ini dengan menjalankan arahan berikut (mengambil sistem Ubuntu/Debian sebagai contoh):
SUDO A2ENMOD PROXY sudo a2enmod proxy_wstunnel
Mulakan semula Apache selepas didayakan:
SURDO SYSTEMCTL Mulakan semula Apache2
Konfigurasikan sokongan proksi terbalik untuk websocket
Untuk mendapatkan WebSocket berfungsi dengan betul, anda perlu memberi perhatian khusus kepada bahagian Peningkatan Permintaan dan protokol. Contoh konfigurasi asas adalah seperti berikut:
<VirtualHost *: 80> ProxypreserveHost On Proxypass/ws/ws: // backend-server/ Proxypassreverse/ws/http: // backend-server/ # Jika ia adalah https, gunakan WSS: // dan tetapan proksypass yang sepadan </virtualhost>
Berikut adalah beberapa perkara penting yang perlu diperhatikan:
- Gunakan URL bermula dengan
ws://
atauwss://
untuk menentukan alamat destinasi. - Pastikan laluan sepadan dengan betul, seperti akses depan
/ws/xxx
, dan back-end mesti dapat mengendalikan laluan yang sepadan. - Jika anda mempunyai antara muka HTTP dan WebSocket, anda boleh memetakan laluan WebSocket secara berasingan untuk mengelakkan campur tangan dengan perkhidmatan lain.
Mengendalikan Soalan Lazim
Permintaan ditolak atau sambungan terganggu
Ini biasanya disebabkan oleh tidak betul menetapkan pengepala permintaan peningkatan dan sambungan. Anda boleh menambah kandungan berikut ke konfigurasi untuk memaksa penghantaran tajuk ini:
RequestHeader Sediakan Upgrade "WebSocket" env = http_upgrade RequestHeader Set Connection "Upgrade" env = http_connection
Dengan cara ini Apache akan mengemukakan permintaan penukaran Protokol Websocket ke backend.
Perhatikan konfigurasi semasa menggunakan SSL/TLS
Jika anda menggunakan HTTPS dan WSS (WebSocket Secure), anda perlu memastikan bahawa SSL dikonfigurasi dengan betul dan titik Proxypass Apache ke alamat wss://
. Di samping itu, sijil SSL mestilah sah, jika tidak, penyemak imbas boleh diputuskan secara langsung.
Kaedah ujian dan debugging
Cara paling mudah untuk menguji sama ada WebSocket berfungsi dengan baik adalah untuk memulakan sambungan menggunakan konsol penyemak imbas atau beberapa alat klien WebSocket seperti WSCAT atau Postman.
Di samping itu, fail log Apache (biasanya di /var/log/apache2/access.log
dan /var/log/apache2/error.log
) dapat membantu menyelesaikan masalah kegagalan sambungan.
Pada dasarnya itu sahaja. WebSocket terdedah kepada masalah dalam persekitaran proksi terbalik terutamanya memberi tumpuan kepada peningkatan protokol dan pemetaan jalan. Selagi kedua -dua mata ini dikonfigurasi dengan betul, selebihnya akan ditinggalkan ke belakang untuk mengendalikan.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan sambungan WebSocket dengan mod_proxy_wstunnel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apabila menghadapi kesilapan "Sambungan Recrefused", makna yang paling langsung adalah bahawa tuan rumah sasaran atau perkhidmatan yang anda cuba sambungkan dengan jelas menolak permintaan anda. 1. Periksa sama ada perkhidmatan sasaran sedang berjalan, log masuk ke mesin sasaran untuk memeriksa status perkhidmatan menggunakan SystemCtLStatus atau PSAUX, dan mulakan secara manual jika tidak dimulakan; 2. Sahkan sama ada port sedang mendengar dengan betul, gunakan perintah Netstat atau SS untuk memeriksa sama ada perkhidmatan itu mendengar port yang betul, ubah suai fail konfigurasi jika perlu dan mulakan semula perkhidmatan; 3. Firewall dan tetapan kumpulan keselamatan boleh menyebabkan sambungan ditolak, periksa peraturan firewall tempatan dan konfigurasi kumpulan keselamatan platform awan, dan sementara menutup firewall semasa ujian; 4. Alamat IP atau kesilapan resolusi DNS juga boleh menyebabkan masalah, menggunakan ping atau

Membolehkan Keepalive dapat meningkatkan prestasi laman web dengan ketara, terutama untuk halaman yang memuat pelbagai sumber. Ia mengurangkan sambungan overhead dan mempercepat memuatkan halaman dengan mengekalkan sambungan penyemak imbas dan pelayan terbuka. Sekiranya laman web ini menggunakan sebilangan besar fail kecil, mempunyai pengunjung pendua, atau melampirkan kepentingan pengoptimuman prestasi, Keepalive harus diaktifkan. Apabila mengkonfigurasi, anda perlu memberi perhatian untuk menetapkan masa tamat dan bilangan permintaan yang munasabah, dan menguji dan mengesahkan kesannya. Pelayan yang berbeza seperti Apache, Nginx, dan lain -lain. Semua mempunyai kaedah konfigurasi yang sepadan, dan anda perlu memberi perhatian kepada isu keserasian dalam persekitaran HTTP/2.

Untuk meningkatkan prestasi Apache, mengoptimumkan parameter konfigurasi diperlukan. 1. Laraskan parameter Keepalive: Aktifkan maxKeepaliverequests dan tetapkan kepada 500 atau lebih tinggi, dan tetapkan KeepAliveTimeout kepada 2 ~ 3 saat untuk mengurangkan overhead sambungan. 2. Konfigurasi modul MPM: set startservers, minspareServers, maxSpareServers dan maxClients dalam mod prefork; Tetapkan Threadsperchild dan MaxRequestworkers dalam mod atau mod pekerja untuk mengelakkan beban yang berlebihan. 3. Kawalan memori Kawalan: Berdasarkan penggunaan memori satu proses

Direktori akar web lalai Apache adalah/var/www/html dalam kebanyakan pengagihan Linux. Ini kerana pelayan Apache menyediakan fail dari direktori akar dokumen tertentu. Jika konfigurasi tidak disesuaikan, sistem seperti Ubuntu, CentOS, dan Fedora menggunakan/var/www/html, manakala macOS (menggunakan homebrew) biasanya/usr/local/var/www, dan windows (xampp) adalah c: \ xampp \ htdocs; Untuk mengesahkan laluan semasa, anda boleh menyemak fail konfigurasi Apache seperti httpd.conf atau apache2.conf, atau buat p dengan phpinfo ()

Dayakan HSTS untuk memaksa pelayar untuk mengakses laman web melalui HTTPS, meningkatkan keselamatan. 1. Untuk membolehkan HTTPS di Apache, anda mesti mengkonfigurasi HTTPS terlebih dahulu, dan kemudian menambah tajuk tindak balas keselamatan-pengangkutan yang ketat dalam fail konfigurasi tapak atau .htaccess; 2. Untuk mengkonfigurasi maksimum (seperti 31536000 saat), termasuk parameter preload; 3. Pastikan modul mod_headers diaktifkan, jika tidak dijalankan sudoa2enmodheaders dan mulakan semula Apache; 4. Anda boleh mengemukakan pilihan ke senarai HSTSpreload, tetapi ia mesti memenuhi kedua -dua tapak utama dan sokongan subdomain HTTPS.

Untuk meningkatkan keselamatan Apache, kita perlu memulakan dari pengurusan modul, kawalan kebenaran, penyulitan SSL, pemantauan log, dan lain -lain. 2. Tetapkan keizinan direktori root ke 755 atau ke bawah, hadkan kebenaran tulis, dan lumpuhkan pelaksanaan traversal dan skrip dalam konfigurasi; 3. Dayakan HTTPS, gunakan sijil Let'sEncrypt dan matikan versi lama protokol dan suite penyulitan yang lemah; 4. Periksa log akses dan ralat secara teratur, gabungkan Fail2Ban untuk menyekat IP yang tidak normal, dan gunakan sekatan IP pada laluan sensitif.

Langkah -langkah untuk memasang Apache di Ubuntu atau Debian termasuk: 1. Kemas kini pakej perisian sistem untuk memastikan sumber perisian terkini; 2. Jalankan sudoaptininstallapache2 untuk memasang perkhidmatan Apache dan periksa status berjalannya; 3. Konfigurasikan firewall untuk membolehkan trafik HTTP/HTTPS; 4. Laraskan laluan fail laman web, ubah suai konfigurasi atau aktifkan modul yang diperlukan; 5. Mulakan semula perkhidmatan Apache selepas mengubah suai konfigurasi dan berkuatkuasa. Seluruh proses adalah mudah dan langsung, tetapi anda perlu memberi perhatian kepada perkara -perkara utama seperti tetapan kebenaran, peraturan firewall dan pelarasan konfigurasi untuk memastikan bahawa Apache berfungsi secara normal dan boleh mengakses halaman lalai melalui penyemak imbas.

Untuk mengalihkan nama domain bukan WWW ke www atau sebaliknya, ia boleh dicapai melalui konfigurasi pelayan, CDN atau platform hosting. 1. Apache Server: Gunakan fail .htaccess untuk menambah peraturan penulisan semula dan penulisan semula, dan tetapkan pengalihan 301; 2. Nginx Server: Ubah suai fail konfigurasi tapak dan gunakan arahan Return301 untuk mencapai lompat; 3. CDN atau platform hosting: Sebagai contoh, CloudFlare mencipta peraturan halaman untuk melompat. Nota termasuk memastikan bahawa sijil SSL merangkumi dua nama domain, menguji sama ada lompat berkuatkuasa, dan mengekalkan konsistensi keseluruhan pautan tapak untuk mengelakkan isu SEO dan kesilapan akses.
