标签:反向代理
标题索引
问题原因
解决思路
参数分析
企业案例
问题原因
现如今公网IP地址80端口管理较为严格,工信部防止搭建违规违法网站,企业在使用80端口时需向运营商网站备案管理处申请备案,备案流程通过运营商才能放行80端口,在备案时需提供资料如互联网信息安全保障责任书(负责人签字)、域名证书复印件、公司三证合一的复印件、网站负责人的生身份等相关资料,另外不同运营商业务业务不同具体链路带宽、IP地址数量和端口的放行都有所不同,如某市某运营商在100M带宽的链路绑定8个公网IP地址,只允许放行一个公网IP地址的80端口,而企业因业务需求需搭建多个站点,IP地址和80端口远远无法支持建站的业务需求。
解决思路
主体思路为反向代理实现80端口的短缺问题(需提前与运营商做沟通,多个网站承载在一个公网IP地址之上),反向代理主流开源免费产品Apache和Nginx,从底层工作原理得知(可参考UNIX网络编程书籍):
Apache在IO多路复用的模型中调用SELECT函数,举例说明,当http请求进入用户空间apache进程后,调用system call中的read函数时,apache进程优先会调用SELECT函数代理Apache相关进程或线程询问内核空间是否完成对磁盘的read,若尚未完成时,周期性的询问,直到完成后,apahce才会调用receform函数将内核空间执行的结果调入用户空间进行数据报的封装。
Nginx在IO多路复用的模型中调用EPOLL函数,举例说明,当http请求进入用户空间Nginx进程后,调用system call中的read函数时,Nginx进程优先调用EPOLL函数,EPOLL再次调用epoll_create、intepoll_ctl和int epoll_wait函数,三种函数的执行功能为当数据从用户空间进入内核空间后,EPOLL处于等待期,内核空间完成对磁盘的read后主动通知EPOLL函数read读取完毕,从而Nginx可以迅速调用receform函数将数据从内核空间调入用户空间完成数据报的封装。
对比二者底层工作原理决定采用Nginx产品做反向代理软件,具体解决业务逻辑拓扑图如下:
图1-1 反向代理业务逻辑
当用户通过公网IP地址的80端口进入内网优先调度到方向代理服务器,反向代理服务器接收到http请求报文后,根据请求包头中的host解析到内网虚拟服务器的web站点,服务器回包时,先转发到代理服务器,由代理服务器再向客户端发起响应报文。
策略分析
原理诶只
企业案例
企业需求:
1.通过一个公网IP地址的80端口搭建多个独立站点,解决当下IP地址80端口不足问题;
2.对部分业务实现缓存业务,缓存时长依据具体业务情况进行设定时间。
逻辑拓扑,在业务逻辑拓扑的设计时,结合企业文化实现节约地址的同时也要节约造价费用等的理念,引领环保绿色数据中心从我做起。企业现阶段逻辑拓扑如下:
图1-2业务逻辑拓扑图
配置演示:
依据业务逻辑,政务集群拥有多个站点,因此ngix代理启用虚拟主机,在虚拟主机中启用反向代理和缓存相关功能,实现业务逻辑的代理和缓存,具体配置如下:
[ root@centos6 ~ ]#ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:D2:CC:D9 inet addr:192.168.100.137 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fed2:ccd9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:342 (342.0 b) TX bytes:930 (930.0 b)
本文出自 “一步一印,有印为证” 博客,谢绝转载!
标签:反向代理
原文地址:http://weiboxue.blog.51cto.com/6506379/1976707