用Nginx反向代理实现Web服务器的IPv6发布

 这篇文章原文发布在”运维日志”博客于 2020年03月10日

一、实现思路

由于校园网内服务器的实际流量不大(最大几十兆),利用一台Nginx反向代理服务器完全可以代理校内的所有Web服务器,只需要给反向代理服务器配置IPv6地址即可实现其余Web服务器的IPv6发布。

下图是实际的结构。

 

未命名绘图

 

二、 实现过程

2.1、服务器IP地址

Nginx反向代理服务器的IPv4地址:210.26.16.30     IPv6地址为:2001:da8:c004:1018::30  域名为:nginx.lzit.edu.cn

内网Web服务器1的地址:210.26.16.123  域名:nic.lzit.edu.cn

内网Web服务器2的地址:210.26.16.124  域名:lib.lzit.edu.cn

内网Web服务器3的地址:……

内网Web服务器N的地址:……

2.2、配置DNS

添加AAAA记录和A记录,下图是PowerDNS(支持IPv6、DNSSEC)的配置:

捕获

捕获2

将内网Web服务器的域名指向Nginx反向代理,如下图:

image

2.3、配置Nginx反向代理

Nginx的安装和配置在之前的博客都已经记录了:

网站nic.lzit.edu.cn的反向代理配置如下图所示:

image

代理其他内部Web服务器的配置跟上图一样,复制修改即可。

2.4、防火墙配置,开放Nginx服务器的IPv6和IPv4地址的Web端口,关闭其他服务器的Web端口。

image

三、 分析

这样就很方便的实现了网站的IPv6发布,当然,前提是学校网络(服务器区)要支持并配置好双栈网络,并与IPv6互联网连通。

可以到http://www.nic.edu.cn查询网站的whios记录和IPv6地址。

使用反向代理后只需要在反代的前边放置WAF即可。

服务器区防火墙只需放行反代的Web端口即可,其他Web服务器不用再对外发布。

自己配置Nginx需要一定的命令行操作,容易出现打字错误,当内网服务很多时,不容易调试错误。

网站的日志分析存储在log文本文件中,不易分析。

四、使用厂商定制过的Nginx实现

这部分是替换上边 2.3节 的手工配置。

反代的网站列表如下图:

image

配置界面如下图:

image

统计信息,比自建的NG直观。

image

本质上还是Nginx的配置,要注意,一旦手工修改下图的配置(比如说自己添加了负载均衡相关的配置),表单上的配置就不再生效了,会以该配置文件为准

image

 

五、测试

两个地方:

1、科大张焕杰老师的 http://ipv6.ustc.edu.cn

2、http://ipv6c.cn

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章