1) yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2)cd /usr/local/nginx
3) wget http://nginx.org/download/nginx-1.17.5.tar.gz
4) 編譯 nginx
./configure --with-stream --with-stream_ssl_module (支持 tcp 代理)
3) 啓動 Nginx: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
stream {
upstream test {
server 192.168.125.17:5050 ;
# check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
#listen 192.168.125.19:5090 ;
listen 192.168.125.19:5090 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
ssl_certificate /usr/local/nginx/conf/tls/server.pem;
ssl_certificate_key /usr/local/nginx/conf/tls/server.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#proxy_protocol on;
proxy_pass test;
}
}
client ------tls-------Nginx--------tcp--------server
如果使用長連接,會面臨端口號耗盡的窘態。
1) 長連接,tcp 端口號使用範圍:net.ipv4.ip_local_port_range (/proc/sys/net/ipv4/ip_local_port_range定義了本地tcp/udp的端口範圍)
2) close_wait 持續2MSL(60s default)也會耗用一部分端口
綜上, 在Nginx 與後臺server(使用固定IP 和端口號) 之間的TCP連接中, Nginx的tcp 端口號是一個受限資源。