在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