利用nginx的stream模块做转发

背景
minecraft服务器的海外中转节点需要把流量转发回服务器,之前用过socat来解决这个需求,但是感觉不是很文明,查了一下资料发现stream模块是可以直接实现的。

环境
由于直接通过包管理器安装的nginx不自带stream模块,所以需要编译安装

git clone https://github.com/nginx/nginx #nginx 
cd nginx ./auto/configure --prefix=/usr/local/nginx --with-stream
make
make install

配置文件

stream{
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    upstream minecraft {
        server 10.10.0.1:25565;
        server 10.10.0.2:25565 backup;
}
server {
    listen 25565;
    proxy_pass minecraft;
    }
}