一、背景说明
有两台服务器 A、B,A、B服务器在同一个内网环境中,之间可互联互通;其中 A 服务器有外网 ip 可远程连接访问;B 服务器无外网 ip ,不可远程请求、访问。
需求:通过远程请求 A 服务器的 ip 和端口,来访问、操作 B 服务器上的 web 服务或者数据库。
二、环境、工具说明
1、操作系统 Centos7.4 x64 Minimal 1708
2、VMware 版本:VMware Workstation Pro15
3、工具:xshell5
4、Nginx:nginx-1.17.3.tar.gz
5、数据库:MariaDb(Mysql)
三、安装部署
1、虚拟机安装
参考:https://blog.csdn.net/llwy1428/article/details/89328381
2、配置网卡
参考:https://blog.csdn.net/llwy1428/article/details/85058028
3、下载 nginx
http://nginx.org/en/download.html 或 http://nginx.org/
4、在 A 服务器 ip:192.168.11.19 上安装基本工具
root@localhost ~]# yum install -y vim lrzsz gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
5、创建目录,上传 nginx 文件,解压
[root@localhost ~]# mkdir /opt/nginx
把已下载好的 nginx-1.17.3.tar.gz 上传到 /opt/nginx 目录中
[root@localhost ~]# cd /opt/nginx
[root@nginx ~]# rz
选择已下载的 nginx-1.17.3.tar.gz 包
解压
[root@nginx ~]# tar zxvf nginx-1.17.3.tar.gz
查看文件目录
6、进入目录、编译(注意:如果使用 nginx 的 stream 功能,在编译时一定要加上 “--with-stream” )
[root@localhost ~]# cd /opt/nginx/nginx-1.17.3
[root@localhost nginx-1.17.3]# ./configure --with-stream
7、安装
[root@localhost nginx-1.17.3]# make && make install
8、查看安装结果
9、配置nginx
进入安装好的nginx下的conf目录
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
events {
use epoll;
worker_connections 1024;
}
stream {
server {
listen 3307;
proxy_connect_timeout 10s;
proxy_timeout 300s;
proxy_pass 192.168.1.12:3306;
}
}
说明:
(1)、使用 epoll 的 I/O 模型;
(2)、连接数,在大量请求的时候需要调大此参数;
(3)、steam 流转发配置;
(4)、转发后的端口号;
(5)、被转发的服务 ip和端口。
扩展:
如果服务是集群模式参考
stream {
upstream back{
server 10.10.62.210:3306 up;
server 10.10.51.213:3306 up;
}
server {
listen 3301;
proxy_connect_timeout 5s;
proxy_timeout 300s;
proxy_pass back;
}
}
10、启动nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx
查看nginx的启动信息
[root@localhost ~]# ps -ef | grep nginx
11、关闭nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s quit
或
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop
或
[root@localhost ~]# kill -9 13114 #(13114 是 PID)
[root@localhost ~]# kill -9 13115 #(13115 是 PID)
12、重新加载配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
启动时加载配置文件的路径:
[root@localhost ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #(配置文件路径)
13、在 B 服务器192.168.1.12节点上安装 MariaDb(Mysql)
参考:
https://hunter.blog.csdn.net/article/details/84965680
14、在 A 服务器 192.168.11.19 上测试连接
至此,Centos7 Nginx 配置 stream 转发,操作完毕!
参考地址:
https://blog.csdn.net/llwy1428/article/details/85063944