Qiitaや他のブログにはHTTP(s)で通信するリバースプロキシサーバーの構築手法はよく掲載されています。しかし、http以外のtcp/udpで通信するリバプロの構築方法を見つけることは難しく苦労したので、こちらに記しておきます。
環境はAWSのEC2(Amazon Linux 2)を用いました。
nginxをインストールする
まずは最新版のnginxをインストールします。この際、yumでインストールするのではなくwgetでビルドする必要があります。
$ 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してinstall。
$ make
$ make install
nginx.confの設定
まずはnginxを起動しましょう。
$ sudo /usr/local/nginx/sbin/nginx
次に設定ファイルをいじります。
$ vi /usr/local/nginx/conf/nginx.conf
httpのところは#でコメントアウトしてしまいます。
nginx.conf
# 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