Konfigurasi WebSocket proksi terbalik Nginx untuk mencapai komunikasi segera
WebSocket ialah protokol komunikasi berdasarkan protokol TCP Ia mewujudkan sambungan dua hala jangka panjang antara penyemak imbas dan pelayan, merealisasikan fungsi komunikasi masa nyata. Sebagai pelayan web berprestasi tinggi, Nginx juga boleh menyokong WebSocket melalui proksi terbalik dan mencapai pengimbangan beban yang lebih baik dan pemprosesan serentak yang tinggi.
Pertama, untuk mengkonfigurasi proksi terbalik dalam Nginx, anda perlu menambah konfigurasi lokasi
dalam fail nginx.conf
. Andaikan bahawa pelayan WebSocket sedang berjalan pada port tempatan 8000, dan kami membalikkan proksinya ke port 3000 pelayan Nginx Konfigurasi khusus adalah seperti berikut: nginx.conf
文件中添加一段location
的配置。假设WebSocket服务器运行在本地的8000端口上,我们将其反向代理到Nginx服务器的3000端口上,具体配置如下:
server { listen 3000; server_name your.server.name; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
在上述配置中,proxy_pass
指令指定了要反向代理的WebSocket服务器的地址和端口。proxy_http_version
指定了反向代理使用的HTTP版本,这里设置为1.1。proxy_set_header Upgrade
和proxy_set_header Connection
指令告诉Nginx在转发WebSocket请求时不要修改Upgrade
和Connection
请求头,以保证WebSocket连接的正常建立。
需要注意的是,如果WebSocket服务器运行在HTTPS协议下,需要在配置中添加proxy_set_header X-Forwarded-Proto $scheme;
指令,以告诉服务器使用HTTPS协议。
完成以上配置后,重新加载Nginx配置文件使其生效:sudo nginx -s reload
。
接下来,我们可以使用WebSocket客户端来测试反向代理配置是否成功。以JavaScript为例,代码如下:
var socket = new WebSocket('ws://your.server.name/'); socket.onopen = function() { console.log('WebSocket连接已建立'); }; socket.onmessage = function(event) { console.log('收到消息:' + event.data); }; socket.onclose = function() { console.log('WebSocket连接已关闭'); };
在上述示例中,我们创建了一个WebSocket对象,并指定了要连接的地址为Nginx服务器的地址。在onopen
、onmessage
和onclose
rrreee
proxy_pass arahan menentukan proksi terbalik Alamat dan port pelayan WebSocket proksi. <code>proxy_http_version
menentukan versi HTTP yang digunakan oleh proksi terbalik, di sini ia ditetapkan kepada 1.1. Arahan proxy_set_header Upgrade
dan proxy_set_header Connection
memberitahu Nginx supaya tidak mengubah suai pengepala permintaan Upgrade
dan Connection
apabila memajukan permintaan WebSocket . Memastikan penubuhan biasa sambungan WebSocket. Perlu diambil perhatian bahawa jika pelayan WebSocket berjalan di bawah protokol HTTPS, arahan proxy_set_header X-Forwarded-Proto $scheme;
perlu ditambahkan pada konfigurasi untuk memberitahu pelayan menggunakan HTTPS protokol. Selepas melengkapkan konfigurasi di atas, muat semula fail konfigurasi Nginx untuk menjadikannya berkesan: sudo nginx -s reload
. 🎜🎜Seterusnya, kita boleh menggunakan klien WebSocket untuk menguji sama ada konfigurasi proksi terbalik berjaya. Mengambil JavaScript sebagai contoh, kodnya adalah seperti berikut: 🎜rrreee🎜Dalam contoh di atas, kami mencipta objek WebSocket dan menentukan alamat untuk disambungkan sebagai alamat pelayan Nginx. Dalam fungsi panggil balik onopen
, onmessage
dan onclose
, kami boleh mengendalikan peristiwa sambungan WebSocket yang berjaya, mesej diterima dan penutupan sambungan. 🎜🎜Melalui contoh konfigurasi dan kod di atas, kami boleh melaksanakan WebSocket proksi terbalik pada Nginx dan merealisasikan fungsi komunikasi segera. Melalui mekanisme pengimbangan beban dan prestasi tinggi Nginx, kami boleh menyediakan perkhidmatan yang stabil dan boleh dipercayai untuk aplikasi WebSocket dan mengendalikan sejumlah besar sambungan serentak. Pada masa yang sama, kerana Nginx mempunyai alat operasi dan penyelenggaraan dan pemantauan yang matang, kami boleh melakukan pengoptimuman prestasi dan penyelesaian masalah aplikasi WebSocket dengan mudah. 🎜🎜Ringkasnya, Nginx ialah pelayan web yang sangat baik Melalui konfigurasi proksi terbalik, kami boleh menyokong WebSocket dengan mudah dan menyediakan perkhidmatan pemesejan segera berprestasi tinggi. Untuk aplikasi web yang perlu melaksanakan fungsi pemesejan segera, konfigurasi proksi terbalik Nginx ialah penyelesaian yang patut diterokai dan digunakan. 🎜Atas ialah kandungan terperinci Konfigurasi WebSocket proksi terbalik Nginx untuk mencapai komunikasi segera. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!