cari
RumahOperasi dan penyelenggaraanNginxBagaimana Nginx melaksanakan konfigurasi WebSocket

Bagaimana Nginx melaksanakan konfigurasi WebSocket

Nov 08, 2023 am 10:37 AM
nginxwebsocketKonfigurasi

Bagaimana Nginx melaksanakan konfigurasi WebSocket

Sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, Nginx juga mempunyai kaedah konfigurasi uniknya sendiri dalam mengendalikan permintaan WebSocket. WebSocket ialah protokol berasaskan TCP Penubuhan sambungan WebSocket memerlukan jabat tangan tiga hala Selepas jabat tangan selesai, komunikasi dua hala boleh berlaku antara klien dan pelayan. Di bawah, kami akan memperkenalkan cara melaksanakan konfigurasi WebSocket dalam Nginx, dengan contoh kod khusus.

Pertama, anda perlu menambah konfigurasi berkaitan WebSocket pada fail konfigurasi Nginx.

http {
  ...
  upstream websocket {
    server localhost:9001;
  }
  ...
  map $http_upgrade $connection_upgrade {
      default upgrade;
      ''      close;
  }
  ...
  server {
      listen 80;
      server_name example.com;

      location / {
          proxy_pass http://websocket;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection $connection_upgrade;
          proxy_set_header Host $host;
      }
      ...
  }
  ...
}

Dalam konfigurasi di atas, kami menambah huluan bernama "websocket" untuk menentukan alamat pelayan sasaran dan port WebSocket. Pada masa yang sama, arahan peta digunakan untuk memetakan $http_upgrade (pengepala permintaan naik taraf pelanggan) dan $connection_upgrade (pengepala permintaan naik taraf nginx). Dengan cara ini, dengan menambahkan medan "Naik Taraf" dan "Sambungan" pada pengepala permintaan naik taraf pelanggan, Nginx boleh dicetuskan untuk menaik taraf protokol HTTP kepada protokol WebSocket, sekali gus mencapai komunikasi dua hala.

Dalam blok pelayan, kami menggunakan arahan proxy_pass untuk memproksi semua permintaan WebSocket ke huluan soket web, dan menetapkan versi protokol dan meminta maklumat pengepala. Perlu diingat bahawa apabila membuat proksi WebSocket dalam Nginx, pengepala permintaan "Naik taraf" dan "Sambungan" mesti dihantar ke pelayan sasaran bersama-sama, jika tidak sambungan akan ditutup, jadi kedua-dua pengepala permintaan ini mesti ditetapkan secara manual melalui arahan proxy_set_header .

Selain itu, perlu diperhatikan bahawa dalam konfigurasi di atas, kami hanya mendengar port HTTP (80) Jika anda perlu mengkonfigurasi WebSocket di bawah HTTPS, anda perlu menambah arahan berikut dalam blok pelayan:

listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;

. Arahan di atas digunakan untuk memantau port HTTPS (443), dan menentukan laluan dan nama sijil dan fail kunci.

Berikut ialah contoh kod pelayan WebSocket khusus, dilaksanakan menggunakan Node.js:

const WebSocket = require('ws');

const server = new WebSocket.Server({ port: 9001 });

server.on('connection', (socket, req) => {
  console.log('Client connected');

  socket.on('message', (message) => {
    console.log(`Received message: ${message}`);
    socket.send(`Your message: ${message}`);
  });

  socket.on('close', () => {
    console.log('Client disconnected');
  });
});

Dalam kod ini, kami mencipta pelayan WebSocket dan mendengar port 9001. Selepas sambungan diwujudkan, kami mengeluarkan maklumat "Pelanggan disambungkan", dan selepas menerima mesej pelanggan, kembalikan mesej itu kepada pelanggan, kemudian dengar acara penutup, dan keluarkan maklumat "Pelanggan diputuskan".

Dengan contoh kod dan konfigurasi di atas, kami boleh melaksanakan kerja proksi dan komunikasi protokol WebSocket dalam Nginx. Perlu diingatkan bahawa masih terdapat sekatan tertentu pada penggunaan protokol WebSocket Secara khusus, proses penubuhan sambungan WebSocket adalah serupa dengan protokol HTTP/HTTPS Walau bagaimanapun, apabila sambungan berjaya diwujudkan, komunikasi antara kedua-duanya pihak bergantung sepenuhnya pada protokol WebSocket Ia tidak lagi bergantung pada protokol HTTP/HTTPS. Oleh itu, apabila menggunakan protokol WebSocket, anda perlu mengelakkan beberapa sekatan pembangunan Web konvensional, dan pada masa yang sama, anda juga mesti memberi perhatian kepada isu seperti keselamatan dan kestabilan.

Atas ialah kandungan terperinci Bagaimana Nginx melaksanakan konfigurasi WebSocket. 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
Nginx dalam tindakan: contoh dan aplikasi dunia nyataNginx dalam tindakan: contoh dan aplikasi dunia nyataApr 17, 2025 am 12:18 AM

Nginx boleh digunakan untuk meningkatkan prestasi laman web, keselamatan, dan skalabiliti. 1) Sebagai proksi terbalik dan pengimbang beban, Nginx dapat mengoptimumkan perkhidmatan back-end dan berkongsi lalu lintas. 2) Melalui seni bina yang didorong oleh peristiwa dan tak segerak, Nginx dengan cekap mengendalikan sambungan serentak yang tinggi. 3) Fail konfigurasi membenarkan definisi peraturan yang fleksibel, seperti perkhidmatan fail statik dan mengimbangi beban. 4) Cadangan pengoptimuman termasuk membolehkan pemampatan GZIP, menggunakan cache dan menala proses pekerja.

Unit Nginx: Menyokong bahasa pengaturcaraan yang berbezaUnit Nginx: Menyokong bahasa pengaturcaraan yang berbezaApr 16, 2025 am 12:15 AM

NginxUnit menyokong pelbagai bahasa pengaturcaraan dan dilaksanakan melalui reka bentuk modular. 1. Memuatkan Modul Bahasa: Muatkan modul yang sepadan mengikut fail konfigurasi. 2. Permulaan Permohonan: Jalankan kod aplikasi apabila bahasa panggilan berjalan. 3. Permintaan Pemprosesan: Teruskan permintaan kepada contoh permohonan. 4. Pulangan Respons: Kembalikan respons yang diproses kepada pelanggan.

Memilih antara nginx dan apache: sesuai untuk keperluan andaMemilih antara nginx dan apache: sesuai untuk keperluan andaApr 15, 2025 am 12:04 AM

Nginx dan Apache mempunyai kelebihan dan kekurangan mereka sendiri dan sesuai untuk senario yang berbeza. 1.Nginx sesuai untuk senario penggunaan sumber yang tinggi dan rendah. 2. Apache sesuai untuk senario di mana konfigurasi kompleks dan modul yang kaya diperlukan. Dengan membandingkan ciri teras mereka, perbezaan prestasi, dan amalan terbaik, anda boleh membantu anda memilih perisian pelayan yang paling sesuai dengan keperluan anda.

Cara Memulakan NginxCara Memulakan NginxApr 14, 2025 pm 01:06 PM

Soalan: Bagaimana untuk memulakan nginx? Jawapan: Pasang Nginx Startup Nginx Verification Nginx adalah nginx mula meneroka pilihan permulaan lain secara automatik Mula nginx

Cara memeriksa sama ada nginx dimulakanCara memeriksa sama ada nginx dimulakanApr 14, 2025 pm 01:03 PM

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.

Cara menutup nginxCara menutup nginxApr 14, 2025 pm 01:00 PM

Untuk menutup perkhidmatan nginx, ikuti langkah -langkah berikut: Tentukan jenis pemasangan: Red Hat/CentOS (status SistemCTL nginx) atau debian/ubuntu (status nginx) menghentikan perkhidmatan: Red Hat/CentOS (SystemCtl Stop Nginx) atau Debian/Ubuntu (perkhidmatan Nginx) (Syst

Cara Mengkonfigurasi Nginx di WindowsCara Mengkonfigurasi Nginx di WindowsApr 14, 2025 pm 12:57 PM

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.

Cara menyelesaikan ralat nginx403Cara menyelesaikan ralat nginx403Apr 14, 2025 pm 12:54 PM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)