1. 程式人生 > >使用Nginx轉發TCP/UDP數據

使用Nginx轉發TCP/UDP數據

fig inf wget color 使用 not 訪問 usr cti

編譯安裝Nginx

從1.9.0開始,nginx就支持對TCP的轉發,而到了1.9.13時,UDP轉發也支持了。提供此功能的模塊為ngx_stream_core。不過Nginx默認沒有開啟此模塊,所以需要手動安裝

cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.1.tar.gz
tar zxf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/usr/local/nginx --with-stream
make && make install

配置Nginx

TCP轉發

目標:通過3000端口訪問本機Mysql(其中mysql使用yum安裝,默認配置文件)

/usr/local/nginx/conf/nginx.conf配置如下:

user nobody;
worker_processes auto;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid logs/nginx.pid;
 
 
events {
use epoll;
worker_connections 1024;
}
 
 
stream {
  server {
  listen 
3000;   proxy_pass 127.0.0.1:3306;   4# 也支持socket   4# proxy_pass unix:/var/lib/mysql/mysql.socket;   } }

UDP轉發

目標: 發送UDP數據到3000端口,3001端口可以接收

/usr/local/nginx/conf/nginx.conf配置如下:

user nobody;
worker_processes auto;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid logs
/nginx.pid; events { use epoll; worker_connections 1024; } stream {   server {   listen 3000 udp;   proxy_pass 127.0.0.1:3001;   } }

使用Nginx轉發TCP/UDP數據