linux tools杂汇

如何运用nginx实现TCP/UDP第四层的调度?

2019-04-15  本文已影响34人  RealLuo

在者之前运用 upstream 实现的都是7层调度,如何运用nginx实现4层调度呢?

知识点回顾:网络七层协议

OSI是一个开放性的通信系统互连参考模型,是一个非常好的协议规范;

OSI统一规范了网络的通信,如果没有这个协议,就没有当今的便利的互联网世界。


OSI模型有7层结构,从上到下分别是:

7、应用层:与其它计算机进行通讯的一个服务,它是对应应用程序的通信服务。比如:HTTP 、 FTP 、NFS 、 NGINX 、QQ等软件的通信;

6、表示层:着一层主要的功能是定义数据及加密;

5、会话层:它定义了如何开始,控制和结束一个会话,包括对多个双向消息的控制和管理;

4、传输层:是两台计算机经过网络层进行数据通信时,第一个端到端的层次,具有缓存的作用。当网络层的服务质量不能满足要求时,它将服务加以提高,当服务质量较好时,它只需要很少工作;

这层的功能包括是否选择差错恢复协议还是无差错恢复协议,以及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能;例如:TCP 、UDP 、SPX;

3、网络层:网络层的产生也是网络发展的结果.在联机系统和线路交换的环境中,网络层的功能没有太大意义.当数据终端增多时。它们之间有中继设备相连.此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径

2、数据链路层:数据链路可以粗略地理解为数据通道。

1、物理层:物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。


其中:<7、6、5、4>层定义了应用程序的功能,<3、2、1>层主要通过网络的端到端的数据流;

要实现nginx实现4层调度必须要掌握了解以下几个知识点:

第一、安装nginx时需要添加什么功能模块才能实现4层调度?

第二、如何修改nginx的配置文件来实现4层调度?

第三、需要注意的事项以及常见的错误有哪些?

第一、安装nginx时需要添加什么功能模块才能实现4层调度?


答:要实现4层调度,Nginx编译安装时候需要添加 --with-stream 模块;

具体操作如下:

cd  /nginx   下面敲以下命令:

./configure  --user=nginx  --group=nginx  --with-http_ssl_module   --with-stream

--user=nginx                            ##指定nginx这个软件归属nginx用户,可以自由定;

--group=nginx                         ##指定nginx这个软件归属nginx组,可以自由定;

--with-http_ssl_module         ##开启SSL加密功能;

--with-stream                           ##开启4层反向代理功能;

第二、如何修改nginx的配置文件来实现4层调度?


第一步、运用 vim   /usr /local /nginx /conf /nginx.conf  进入nginx的主配置文件;

第二步、在文件的 http {  字符上面添加以下内容;

因为http { 属于第七层应用层,而我们现在要实现的是第四层的调度,所以得在http { 范围外添加;

stream  {

                upstream  backend  {                    ##backend 是自定义的集群名称

                    server  192.168.2.100:22;       ##归属backend调度IP地址和服务端口号22,属于ssh远程功能的端口号;

                    server  192.168.2.200:22;       ##同上

                                                    }                  ##大括号一定是一对一对出现;

                server    {

                          listen  22;                             ##nginx监听的端口号;

                          proxy_pass  backend;       ##当远程访问主机proxy时,通过集群backend来进行调度;

                          proxy_connect_timeout 1s;        ##连接时超过1s还步成功就退出;

                          proxy_timeout 3s;                ##3s之后可以再次连接;也可以不加这两行;

                               }

}                              ##大括号必须时一对一对出现;

第三步、重新启动nginx服务;

/usr /local /nginx /sbin /nginx      -s    reload

第四步、使用客户端进行测试;

ssh   -X   root@192.168.4.5   -p   22;

译为:以root的身份,运用 ssh 工具,远程访问192.168.4.5这台服务器,访问的端口号 -p 22;

第三、需要注意的事项以及常见的错误有哪些?


1.结尾忘记写“  ; ”分号了;

2.忘记写大括号“   {  } ” ,或和漏写一个;

3.字母写错,或者端口号写错;

知识点拓展:常见HTTP状态码含义解读;


访问网页会出现以下代码:

200 表示一切正常;

301 表示永久重定向;

302 表示临时重定向;

401 表示用户名或者密码错误;

403 禁止访问,客户端IP的地址被拒绝;

404 网页文件不存在;

500 服务器内部错误;

502 Bad Gsteway;

以上......

                                                        (   END  )


祝:开心!

罗贵

2019-04-15于深圳

上一篇 下一篇

猜你喜欢

热点阅读