在nginx上建立一个用于非HTTP(S)通信的反向代理。请注意,该翻译可能并不完全准确或流畅,因为某些术语在中文中可能没有直接的对应词汇

在Qiita和其他博客上,关于使用HTTP(s)进行通信的反向代理服务器构建方法经常被介绍。但是,找到使用除了HTTP之外的TCP/UDP进行通信的反向代理构建方法是困难而费力的,因此我在这里记录一下。

我使用了AWS的EC2(Amazon Linux 2)来创建环境。

安装nginx

首先,需要安装最新版本的nginx。在此过程中,需要使用wget来构建,而不是通过yum进行安装。

$ wget http://nginx.org/download/nginx-1.19.2.tar.gz 
$ tar zxvf nginx-1.19.2.tar.gz
$ cd nginx-1.19.2
$ ./configure --modules-path=/usr/local/nginx/modules --with-stream

在这里,为了应对各种问题而受到指责,我们可以逐个地使用 yum 安装所需的内容。

$ yum install gcc
$ yum -y install pcre-devel
$ yum -y install zlib-devel

我认为这样就可以通过了。然后进行make并安装。

$ make
$ make install 

Nginx的配置文件设定

首先让我们启动nginx。

$ sudo /usr/local/nginx/sbin/nginx

接下来我们需要调整设置文件。

$ vi /usr/local/nginx/conf/nginx.conf

把URL的部分用”#”进行注释处理。

# http{---略---
# }

stream {
    upstream mcserver {
        server {送信先IP}:{送信先ポート番号};
    }
      server {
        listen   {受信ポート番号};
        proxy_pass mcserver;
        allow {許可するIPアドレス};
        deny all;
    }
}

只需刷新页面,即可更新。

#リロード
$ /usr/local/nginx/sbin/nginx -s reload
#終了
$ /usr/local/nginx/sbin/nginx -s stop
#起動
$ /usr/local/nginx/sbin/nginx