nginx支持数据库等TCP端口的转发
当前环境
全新未安装任何东西的阿里云CentOS 7.9 64位系统
第一步:更新系统
sudo yum update -y
第二步:安装 nginx
疑似nginx1.9以上才支持TCP协议, EPEL 仓库的安装包大于1.9版本,所以使用默认版本即可
sudo yum install -y nginx
第三步:启动nginx
sudo systemctl start nginx
第四步:设置开机自启 nginx
sudo systemctl enable nginx
第五步:查看信息
查看nginx支持哪些模块
nginx -V
查看nginx当前启动状态
sudo systemctl status nginx
重要步骤六:安装stream模块,不然无法识别stream不能进行TCP协议转发
可以使用两种方式安装,选择1或者2即可
1、单独安装stream模块,
sudo yum install nginx-mod-stream
2、安装所有模块
yum -y install nginx-all-modules.noarch
步骤7:修改配置文件
设置要转发的端口和地址
vi /etc/nginx/nginx.conf
以下是我的配置
# add by luyuxi 20240510 start 将TCP的3306端口转发到47.120.74.197:3306
stream {
server {
listen 3306;
proxy_pass mysql_backend;
}
upstream mysql_backend {
server 47.120.74.197:3306;
}
}
# add by luyuxi 20240510 end
步骤八:验证文件是否配置成功
nginx -t
步骤九:刷新重新加载配置文件
sudo systemctl restart nginx
步骤十,验证是否成功转发TCP协议端口
我此处直接使用本地的Navicat连接远程的3306端口,跳转链路为:
本地 -> 香港云 -> 跳转国内服务器
完结:做这个跳转的意义是什么?
因为香港云服务器不需要备案,绑定域名后就可以通过域名访问无备案的网站,可以很多事情。