Korkmayın, çünkü cesur bir Operasyon Programcısı grubu durumu yeni nginx_tcp_proxy_module şaplak atan bir markayla çözdü
Ağustos 2012'de yazıldı, bu yüzden gelecekten iseniz ev ödevinizi yapmalısınız.
Ön şartlar
CentOS kullandığınızı varsayar:
- Mevcut NGINX örneğini kaldırın (bunun için geliştirme sunucusu kullanmanızı öneririz)
- Mümkünse, eski NGINX yapılandırma dosyalarınızı kaydedin, böylece onları yeniden kullanabilirsiniz (
init.d/nginx
betiğiniz dahil)
yum install pcre pcre-devel openssl openssl-devel
ve NGINX'i oluşturmak için gerekli diğer kitaplıklar
- GitHub'dan nginx_tcp_proxy_module dosyasını buradan alın https://github.com/yaoweibin/nginx_tcp_proxy_module ve yerleştirdiğiniz klasörü hatırlayın (sıkıştırılmadığından emin olun)
Yeni NGINX'inizi Oluşturun
Yine, CentOS varsayar:
cd /usr/local/
wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
tar -xzvf nginx-1.2.1.tar.gz
cd nginx-1.2.1/
patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
./configure --add-module=/path/to/nginx_tcp_proxy_module --with-http_ssl_module
(ihtiyacınız olursa daha fazla modül ekleyebilirsiniz)
make
make install
İsteğe bağlı:
sudo /sbin/chkconfig nginx on
Nginx'i Kurun
Yeniden kullanmak istiyorsanız, önce eski yapılandırma dosyalarınızı kopyalamayı unutmayın.
Önemli:tcp {}
conf'inizde en üst düzeyde bir yönerge oluşturmanız gerekecektir . Direktifinizin içinde olmadığından emin olun http {}
.
Aşağıdaki örnek yapılandırma, tek bir yukarı akış web soket sunucusunu ve hem SSL hem de SSL olmayan için iki proxy gösterir.
tcp {
upstream websockets {
## webbit websocket server in background
server 127.0.0.1:5501;
## server 127.0.0.1:5502; ## add another server if you like!
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
server_name _;
listen 7070;
timeout 43200000;
websocket_connect_timeout 43200000;
proxy_connect_timeout 43200000;
so_keepalive on;
tcp_nodelay on;
websocket_pass websockets;
websocket_buffer 1k;
}
server {
server_name _;
listen 7080;
ssl on;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.key;
timeout 43200000;
websocket_connect_timeout 43200000;
proxy_connect_timeout 43200000;
so_keepalive on;
tcp_nodelay on;
websocket_pass websockets;
websocket_buffer 1k;
}
}