


Pelaksanaan komunikasi yang cekap antara Pengurus Proksi Nginx dan WebSocket
Pengurus Proksi Nginx (selepas ini dirujuk sebagai NPM) ialah alat pengurusan proksi berasaskan Nginx yang menyediakan cara mudah dan berkuasa untuk mengurus berbilang pelayan proksi terbalik. Baru-baru ini, saya menghadapi masalah apabila menggunakan NPM: bagaimana untuk mencapai komunikasi yang cekap antara NPM dan WebSocket. Dalam artikel ini, saya akan berkongsi pengalaman dan pengajaran saya dalam mencapai matlamat ini, dan memberikan contoh kod konkrit.
Sebelum kita bermula, mari kita lihat secara ringkas pada WebSocket. WebSocket ialah protokol untuk komunikasi dupleks penuh melalui satu sambungan TCP. Tidak seperti HTTP, WebSocket membenarkan pelayan menghantar data secara aktif kepada klien tanpa memerlukan klien membuat permintaan. Disebabkan kependamannya yang rendah dan kecekapan tinggi, WebSocket sangat popular dalam aplikasi masa nyata, seperti aplikasi sembang, penghantaran data masa nyata, dsb.
NPM menggunakan Nginx untuk mengendalikan permintaan HTTP dan HTTPS serta menyediakan fungsi proksi terbalik. Untuk mencapai komunikasi yang cekap dengan WebSocket, kami perlu mengkonfigurasi NPM untuk memajukan permintaan WebSocket dan mengendalikan maklumat pengepala berkaitan dengan betul. Berikut ialah contoh konfigurasi Nginx yang mudah:
server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /ws/ { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /api/ { ... } location /admin/ { ... } ... upstream backend { server backend.example.com; } }
Dalam konfigurasi di atas, kami menggunakan dua blok lokasi untuk mengendalikan permintaan WebSocket. Blok lokasi pertama digunakan untuk mengendalikan permintaan WebSocket di bawah laluan akar, manakala blok lokasi kedua digunakan untuk mengendalikan permintaan WebSocket bermula dengan /ws/. Dalam dua blok lokasi ini, kami menggunakan arahan proxy_pass untuk memajukan permintaan ke pelayan hujung belakang dan menetapkan maklumat pengepala HTTP yang berkaitan untuk memastikan permintaan WebSocket boleh dihantar dengan betul ke pelayan hujung belakang.
Selain mengkonfigurasi Nginx, kami juga perlu melaksanakan logik berkaitan WebSocket pada pelayan bahagian belakang. Berikut ialah contoh mudah yang dilaksanakan menggunakan Node.js dan perpustakaan WebSocket:
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', (ws) => { console.log('Client connected'); ws.on('message', (message) => { console.log(`Received: ${message}`); }); ws.send('Hello, client!'); });
Dalam kod di atas, kami mencipta pelayan WebSocket dan mengendalikan sambungan baharu dalam acara sambungan. Dalam pengendali acara sambungan, kami boleh mengendalikan mesej daripada pelanggan dan menghantar respons.
Menggunakan konfigurasi Nginx dan kod pelayan WebSocket di atas, kami boleh mencapai komunikasi yang cekap antara NPM dan WebSocket. Sebagai contoh, kita boleh menggunakan NPM untuk mengendalikan permintaan HTTP dan memajukan permintaan WebSocket pada URL tertentu ke pelayan WebSocket bahagian belakang. Dengan cara ini, kita boleh menggunakan HTTP dan WebSocket di bawah nama domain yang sama, dan permintaan WebSocket boleh diuruskan oleh NPM seperti permintaan HTTP yang lain.
Ringkasnya, dengan mengkonfigurasi NPM dengan betul dan melaksanakan kod pelayan WebSocket bahagian belakang, kami boleh mencapai komunikasi yang cekap antara NPM dan WebSocket. Ini membolehkan kami mengendalikan permintaan WebSocket dengan mudah semasa menggunakan NPM dan melaksanakan keupayaan komunikasi masa nyata yang diperlukan untuk aplikasi masa nyata. Saya harap contoh kod dan penjelasan dalam artikel ini berguna!
Atas ialah kandungan terperinci Pelaksanaan komunikasi yang cekap antara Pengurus Proksi Nginx dan WebSocket. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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)

Topik panas



Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.

Pelayan tidak mempunyai kebenaran untuk mengakses sumber yang diminta, mengakibatkan ralat NGINX 403. Penyelesaian termasuk: Periksa keizinan fail. Semak konfigurasi .htaccess. Semak konfigurasi Nginx. Konfigurasikan keizinan Selinux. Semak peraturan firewall. Menyelesaikan masalah lain seperti masalah penyemak imbas, kegagalan pelayan, atau kesilapan lain yang mungkin.

Terdapat dua cara untuk menyelesaikan masalah silang domain Nginx: Ubah suai tajuk tindak balas silang domain: Tambah arahan untuk membenarkan permintaan lintas domain, nyatakan kaedah dan tajuk yang dibenarkan, dan tetapkan masa cache. Gunakan modul CORS: Dayakan modul dan konfigurasikan peraturan CORS untuk membolehkan permintaan, kaedah, tajuk, dan masa cache domain.

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Bagaimana untuk memperbaiki kesilapan dilarang nginx 403? Semak keizinan fail atau direktori; 2. Semak .htaccess File; 3. Semak fail konfigurasi nginx; 4. Mulakan semula nginx. Penyebab lain yang mungkin termasuk peraturan firewall, tetapan selinux, atau isu aplikasi.
