首先借用一下前辈的话,解释下反向代理是什么?

反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
其实反向代理的作用就是起到保护后端服务器的作用
如图:

看了这个图,好多小朋友都懂了,大概可以达成两点共识。

①:域名解析的是代理服务器。

②:反向代理重定向请求的是内网IP。前面我们公司的小哥配的是公网IP,一是不安全(公网IP+端口照样能够访问,代理个啥玩意呢),二是响应速度(内网在速率上秒杀外网,而且减少了过程。举个例子:代理和应用服务器在一个屋子,当别人敲门找到代理说请求应用。内网相当于直接把请求告诉代理,外网访问就是告诉人家你去那个地址再敲一次门提交你的请求)。

下面开始干活

一、安装发布代理服务haproxy

①:准备Haproxy1.4.24安装包。并上传到服务器

②:解压

tar -zxf haproxy-1.4..tar.gz

③:安装

进入haproxy目录,逐条执行以下2条命令:

make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

④:配置

编辑 /usr/local/haproxy/haproxy.cfg 配置文件,配置反向代理

global
maxconn 15000
nbproc 1
daemon defaults
option httpclose
maxconn 65535
timeout connect 600000ms
timeout client 600000ms
timeout server 600000ms
log 127.0.0.1 local0 err listen win_ss
bind 0.0.0.0:10008
mode tcp
#balance source
server s1 8.8.8.8:1234 weight 128 maxconn 2000 inter 60s check rise 1 fall 3
server s2 8.8.4.4:1235 weight 128 maxconn 2000 inter 60s check rise 1 fall 3 listen status
bind 0.0.0.0:1188
mode http
stats refresh 30s
stats uri /
stats auth admin:admin
#stats hide-version
stats admin if TRUE ##代理http端口
frontend http_in
##使用http的方式代理
bind 0.0.0.0:80
mode http
option httpclose
option forwardfor #配置第一个项目请求
acl project1-server path_beg -i /project1/
use_backend project1-server if project1-server ##以下表示请求在以上路径都不符合时,使用该后台服务器处理
default_backend root #当以域名+/project1请求时转发到下面地址,内网ip+端口+项目名(项目名一个时可以不写)
backend project1-server
mode http
option forwardfor
server wget 182.15.0.12:80/project1 check inter 10s #匹配不到路径时默认转发的地址
backend root
mode http
option forwardfor
server cas01 182.15.0.5:80 check inter 10s

⑤:启动

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

二、部署应用服务

  打包到tomcat发布就不说了。讲两点:

  ①:关闭安全组对外访问的端口,比如你以前应用服务器tomcat的端口80,8080等等那些,全部关闭。当然防火墙对应的tomcat端口别关闭了。这是两回事,防火墙建议开启,好东西免费干嘛不用。

  ②:安全组放通内网访问策略,这是一个泛域匹配放通所有,并不是说只通配0-12或0-16的子域。想要深入了解可以百度。 

162.16.0.0/     ALL
192.168.0.0/ ALL

这样反向代理就完成了,输入域名就可以访问了。

而你再输入应用服务器的公网IP+端口访问,不好意思访问不了。这样代理的目的就达到了。

一般代理服务器的配置和带宽比应用服务器的配置要高,这样用户体验也提升了。

最新文章

  1. Maven(一)环境搭建
  2. JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用
  3. [Android Pro] proguard
  4. CPU informition
  5. lintcode:背包问题
  6. python 快速入门
  7. ORA-12838: cannot read/modify an object after modifying it in parallel
  8. 从点击Button到弹出一个MessageBox, 背后发生了什么(每个UI线程都有一个ThreadInfo结构, 里面包含4个队列和一些标志位)
  9. 计算两点间的距离-hdu2001
  10. 乐在其中设计模式(C#) - 建造者模式(Builder Pattern)
  11. POJ 2386 Lake Counting (简单深搜)
  12. BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
  13. 初探linux子系统集之timer子系统(二)
  14. PHP开发要点与技巧总结(二)
  15. 20175305张天钰Java结对编程四则运算
  16. His表(简化)
  17. 高级程序设计JavaScript
  18. js的基本包装类型
  19. 字符编码-ASCII,GB2312,GBK,GB18030
  20. [转载]AngularJS学习笔记

热门文章

  1. H3CNE学习5 STP
  2. Ubuntu安装php7.0环境
  3. mpvue开发小程序
  4. 1054 The Dominant Color (20)(20 分)
  5. fork()函数 图解
  6. sudo 命令
  7. SVN版本回滚实战
  8. 5.lock 锁
  9. 【caffe Layer】代码中文注释
  10. sass登陆页面实例