使用nginxnginx tcp 反向代理理后如何在后台web应用中获

最近实验室主站要加很多功能,这时候就需要搞nginx tcp 反向代理理了在千辛万苦的解决了apachenginx tcp 反向代理理的一些资源问题和websocket问题后。想试试ngnix会不会也有同样的问题经过测试,發现nginx更简单方便易于配置。接下来我们列出具体的需求和配置

首先,我们的云主机ip为 也就是我们实验室的主站。



本文讲的都是子目錄的配置其实nginx tcp 反向代理理另一部分就是通过二级域名来访问,不过这部分比较简单设置下servername就好了,遇到的问题也比较少就不详细讲叻。我们通过具体的Nginx配置设置来讲解是如何实现上述功能的

(一)upstream是为了后面设置负载均衡的,如果不需要的话可以直接删掉

設置/目录为主站,并为其他目录rewrite assets文件等主站要是想显示别的网站或是端口的内容,直接proxypass过去就好了

(三)其他目录的设置。apache和 lab409都比较簡单pysb(心疼py)会是一个websocket访问端口,要多设置一下ws所需内容并且注意443端口开放。

经过这样的配置就大工告成了。是不是很简单呢快搭建你自己的nginx tcp 反向代理理去吧!

}

nginx从1.9.0开始支持TCPnginx tcp 反向代理理之前只支持HTTP。这是我的系统示意图:

为什么需要nginx tcp 反向代理理主要是:

比如我现在要更新后端服务器,如果不用负载均衡的话在更新过程中,鼡户会出现无法连接服务器的情况而一旦用了负载均衡,用户此时的连接请求将会分配到别的没在更新的后端服务器去尽可能地确保叻服务的可用性;再考虑这么种情况,我有多个服务器后端那么就需要打开多个不同的监听端口,我需要在系统防火墙里做多个配置洳果它们与客户端的连接使用了SSL/TLS,那么得给它们各自配置证书现在用了nginx tcp 反向代理理的话这些都简化了,服务器只需要打开一个对外监听端口证书也只需要给nginx tcp 反向代理理配置好即可,就是我说的方便管控当然了,还能方便的管控流量设置一些额外的访问策略什么的。

那么nginx tcp 反向代理理的缺点是什么我想如果后端多了起来,连接多了起来之后对nginx来说是一个很大的挑战,毕竟TCP和HTTP不一样TCP通常是“长连接”,要一直维持着的到时候如果nginx撑不下去,就考虑用硬件负载均衡吧(不过听说这玩意儿不便宜)

安装nginx的旧方法当然是去官网下载tar包,解压缩configure,make……我在《》中有详细描述现在我们不妨改进一下——用yum安装,这样更省事我用的CentOS7的默认yum容器貌似并没有nginx,需要自己加裝一下其实很简单,改一下配置即可在/etc/yum.repo.d底下创建文件nginx.repo,内容为:

如果没有看到这两个参数那就只好走老路来安装nginx了。

发现了没有使用yum安装管理起来也简单了。

1) 设置一个叫“backend”的后端配置

2) 我有两个后端服务器其中之一监听在7397端口,nginx尝试连接之(10秒钟为判定失败的時长,这个我暂时也不太明白)最多失败3次超过则不再重试

注意:有必要的话,调整firewalld或iptables来允许这个端口的外部访问对firewalld来说,可以添加這样的策略

查看一下firewalld的策略列表:

4) 所使用的X.509证书文件(PEM格式)对证书不熟悉的请参考《》,对于使用TCP协议的服务器端其实是可以用自簽的证书的,(如何生成自签证书刚提到的文章里也有说明)你客户端“认”它就是了,反正我们的目的就是防范中间人攻击不像做網站,我们得让浏览器“认”证书才行

6) 设置SSL Session Cache使用“shared”方式更有利于提高资源的利用率“SSL”是给缓存起的名字,你可以改成别的(这个名芓如何用我现在不太清楚)“10m”为缓存大小(1M的缓存大约可以存放4000个session)

8) 指定SSL加密算法,照写即可(我一看数学就头大所以至今仍未明皛RSA的数学原理)

9) 更偏向于使用服务器的加密算法(这个我不太明白什么意思)

10) 指定nginx连接后端服务器超时的时间,指定为20秒

11) 距离上一次成功訪问(连接或读写)后端服务器的时间超过了5分钟就判定为超时断开此连接

12) 将TCP连接及数据收发转向叫“backend”的后端(这句话很关键)

好像沒啥好说的了,客户端连接1268这个端口完事哦,对了改好配置了别忘记重启下nginx:

}

Websocket协议提供了一种方式可以让客户端与服务器相互通信现代很多浏览器都支持Websocket,后端的很多开发框架也大多支持Websocket在生产环境中,经常需要用到Nginx作为nginx tcp 反向代理理有时候需要代理后端的Websocket服务。
我们对Nginx进行一些配置才能支持后端的Websocket。

默认情况下60s之内,代理服务器未发送任何数据的话连接会被关闭我们鈳以设置 指令,来进行调整

前段时间在使用Websocket的时候,后端使用的Spring Boot在本地开发不会报任何错,放到生产环境上生产环境使用Nginx做nginx tcp 反向代悝理,会提示不支持的Websocket版本则猜想到应该是Nginx配置的问题,在此记录下解决方案

}

我要回帖

更多关于 nginx 反向代理教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信