一、背景说明

有两台服务器 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、虚拟机安装

参考:javascript:void(0)

2、配置网卡

参考:javascript:void(0)

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

查看文件目录

记一次  Centos7  Nginx  配置  stream  转发_nginx

6、进入目录、编译(注意:如果使用 nginx 的 stream 功能,在编译时一定要加上 “--with-stream” )

[root@localhost ~]# cd /opt/nginx/nginx-1.17.3

[root@localhost nginx-1.17.3]# ./configure --with-stream

记一次  Centos7  Nginx  配置  stream  转发_配置文件_02

7、安装

[root@localhost nginx-1.17.3]# make && make install

记一次  Centos7  Nginx  配置  stream  转发_服务器_03

8、查看安装结果

记一次  Centos7  Nginx  配置  stream  转发_javascript_04

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;
  }
}

记一次  Centos7  Nginx  配置  stream  转发_配置文件_05

说明:

(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

记一次  Centos7  Nginx  配置  stream  转发_stream  _06

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)

参考:

javascript:void(0)

14、在 A 服务器 192.168.11.19 上测试连接

记一次  Centos7  Nginx  配置  stream  转发_javascript_07

 

 

至此,Centos7  Nginx  配置  stream  转发,操作完毕!

 

参考地址:

 (0)