這篇文章原文發佈在”運維日誌”博客於 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)的配置:
將內網Web服務器的域名指向Nginx反向代理,如下圖:
2.3、配置Nginx反向代理
Nginx的安裝和配置在之前的博客都已經記錄了:
- Nginx安裝:https://blog.51cto.com/lovemjd/2564280 或者校內運維日誌
- Nginx與LDAP結合:https://blog.51cto.com/lovemjd/2564286 或者校內運維日誌
- Nginx根據源地址選擇LDAP認證: https://blog.51cto.com/lovemjd/2564288 或者校內運維日誌
網站nic.lzit.edu.cn的反向代理配置如下圖所示:
代理其他內部Web服務器的配置跟上圖一樣,複製修改即可。
2.4、防火牆配置,開放Nginx服務器的IPv6和IPv4地址的Web端口,關閉其他服務器的Web端口。
三、 分析
這樣就很方便的實現了網站的IPv6發佈,當然,前提是學校網絡(服務器區)要支持並配置好雙棧網絡,並與IPv6互聯網連通。
可以到http://www.nic.edu.cn查詢網站的whios記錄和IPv6地址。
使用反向代理後只需要在反代的前邊放置WAF即可。
服務器區防火牆只需放行反代的Web端口即可,其他Web服務器不用再對外發布。
自己配置Nginx需要一定的命令行操作,容易出現打字錯誤,當內網服務很多時,不容易調試錯誤。
網站的日誌分析存儲在log文本文件中,不易分析。
四、使用廠商定製過的Nginx實現
這部分是替換上邊 2.3節 的手工配置。
反代的網站列表如下圖:
配置界面如下圖:
統計信息,比自建的NG直觀。
本質上還是Nginx的配置,要注意,一旦手工修改下圖的配置(比如說自己添加了負載均衡相關的配置),表單上的配置就不再生效了,會以該配置文件爲準。
五、測試
兩個地方:
1、科大張煥傑老師的 http://ipv6.ustc.edu.cn