花门楼前见秋草,岂能贫贱相看老。这篇文章主要讲述CentOS 7.9使用Nginx的stream模块实现内网端口转发相关的知识,希望能为你提供帮助。
1、stream模块简介:
nginx从1.9.0版本开始,新增了stream模块,可以实现四层协议的转发、代理或负载均衡等,比如在内网有mysql服务,想暴露到公网上使用,就可以通过Nginx代理方式进行内网MySQL访问,也可实现后端服务的负载均衡。
2、演示环境:
主机名 | 操作系统 | IP | 端口 |
nginx | CentOS7.9 | 192.168.0.120 | 80 |
mariadb | CentOS7.9 | 192.168.0.121 | 3306 |
3、mariadb主机部署MariaDB:
(1)安装、启动MariaDB:
# yum -y install mariadb-server
# systemctl start mariadb
# systemctl enable mariadb
# ss -tunlp | grep 3306
(2)初始化MariaDB:
# mysql_secure_installation
(3)登录MariaDB,删除不必要用户:
# mysql -uroot -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select host,user,passwordfrom user;
文章图片
MariaDB [mysql]> delete from user wherehost=\'localhost\';
MariaDB [mysql]> delete from user where host=\'127.0.0.1\';
MariaDB [mysql]> delete from user wherehost=\'::1\';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> select host,user,passwordfrom user;
文章图片
(4)创建测试数据库:
MariaDB [mysql]> create databasenginx_proxy;
MariaDB [mysql]> show databases;
文章图片
(5)授权root用户远程登录,方便测试:
MariaDB [mysql]> grant all on *.* to\'root\'@\'192.168.0.%\' identified by \'123456\';
MariaDB [mysql]> flush privileges;
4、nginx主机部署Nginx:
(1)安装依赖软件包:
# yum-y install gcc gcc-c++ pcre-devel zlib-devel
(2)编译安装Nginx:
# tar-xf nginx-1.20.1.tar.gz -C /usr/src
# cd/usr/src/nginx-1.20.1
# ./configure--prefix=/usr/local/nginx --with-stream
# make& & make install
备注:--with-stream启用TCP/UDP代理模块
(3)配置stream模块:
# vim /usr/local/nginx/conf/nginx.conf
worker_processes auto;
events {
use epoll;
worker_connections 65535;
}
?
stream {
server {
listen 3366;
proxy_connect_timeout 60s;
proxy_timeout 10m;
proxy_pass 192.168.0.121:3306;
}
}
http {
......
}
?备注:
a、proxy_connect_timeout:定义与代理服务器建立连接的超时时长,默认60秒
b、proxy_timeout:设置客户端或代理服务器中两个连续读或写操作之间的连接超时时长,如果在此时间内未传输任何数据,则连接将关闭,默认10分钟?
(4)启动Nginx:
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx
# ss -tunlp | grep 80
5、测试:
(1)nginx主机安装数据库客户端工具:
# yum -yinstall mysql
(2)nginx主机通过Nginx代理模块访问内网MariaDB:
# mysql-uroot -h192.168.0.120 -P3366 -p
【CentOS 7.9使用Nginx的stream模块实现内网端口转发】
文章图片
推荐阅读
- Windows 11今日正式推送,文末附下载链接
- linux之man命令
- 数据展示_2021排列五演算数据微信展示:G4441G
- linux时间格式化命令
- 是否有针对og(type,og:local等的WordPress函数())
- 有没有办法将UL子菜单包装为div()
- 有没有一种方法可以在WordPress中设置add_menu_page()的样式()
- 有没有一种方法可以列出在某个类别中已发布视频的所有作者,并像列表那样一起显示它们()
- 有没有一种方法可以在WordPress媒体库中创建重复图像并调整其大小()