Nginx 代理TCP/UDP 端口
Nginx 在1.9版本后新增TCP/UDP 代理
Nginx默认是没有开启TCP/UDP代理。需要在编译Nginx是添加--with-stream进行开启。
编译安装Nginx
tar zxf cd nginx-1.16.1.tar.gz cd nginx-1.16.1/ ./configure --user=www --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre --with-stream make make install
修改nginx.conf配置文件
user www www; worker_processes 4; error_log /data/log/nginx_log/nginx_error.log notice; pid /usr/local/nginx/sbin/nginx.pid; worker_rlimit_nofile 204800; events { use epoll; worker_connections 204800; } http { include mime.types; default_type application/octet-stream; charset utf-8; server_tokens off; server_names_hash_bucket_size 512; client_header_buffer_size 512k; large_client_header_buffers 64 512k; client_max_body_size 100m; proxy_ignore_client_abort on; sendfile on; tcp_nopush on; keepalive_timeout 120; keepalive_requests 1024; fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=30d max_size=3096m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 4k; fastcgi_buffers 8 4k; fastcgi_busy_buffers_size 8k; fastcgi_temp_file_write_size 8k; # fastcgi_cache TEST; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500; open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 60s; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 16 64k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; gzip_vary on; log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '"$upstream_addr" "$upstream_status" "$request_time" "$upstream_response_time" $bytes_sent $request_length'; include /usr/local/nginx/conf/vhosts/*.conf; } stream { include /usr/local/nginx/conf/ports/*.conf; }
由于http 和 stream是两个不同的模块,所以不能写在一些
在http下面新增stream的配置信息
编写代理ports配置文件
代理UDP文件: vi /usr/local/nginx/conf/ports/udp.conf upstream backend { server 192.168.6.110:1812; } server { listen 8686 udp reuseport; proxy_connect_timeout 8s; proxy_timeout 24h; #代理超时 proxy_pass backend; proxy_responses 1; }
代理TCP
upstream backend { server 10.7.2.86:1521; } server { listen 8686; proxy_connect_timeout 8s; proxy_timeout 24h; #代理超时 proxy_pass backend; }
启动Nginx,进行测试