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

反向代理:以代理服务器来接受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+端口访问,不好意思访问不了。这样代理的目的就达到了。

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

记一次haproxy反向代理配置的更多相关文章

  1. haproxy反向代理配置示例

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. Httpd Nginx Haproxy反向代理

    Apache反向代理 部署httpd反向代理 准备工作: 三台虚拟机Ip地址分配: linux-node1:192.168.1.5 (源码编译httpd,并且配置proxy用于代理后端的httpd服务 ...

  3. Nginx、haproxy反向代理设置

    Nginx反向代理配置: #user nobody; worker_processes ; events { worker_connections ; } http { include mime.ty ...

  4. haproxy反向代理环境部署(http和https代理)

    操作背景:前方有一台haproxy代理机器(115.100.120.57/192.168.1.7),后方两台realserver机器(192.168.1.150.192.168.1.151,没有公网i ...

  5. apache 反向代理配置

    配置前资料检查: 1.可以使用的apache 安装apache服务:打开cmd , 在apache的bin目录下执行以下命令 httpd -k install -n apache2.2    其中&q ...

  6. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  7. apache 反向代理配置(ubuntu)

    1.配置apache2的站点文件 cd /etc/apache2/site-avaliable sudo vim edy.conf 具体配置如下: # 反向代理配置 # 监听所有80端口的访问 < ...

  8. nginx反向代理配置

    最近在项目中使用nginx反向代理,根据不同的请求路径,将请求分发到不同服务.下面的示例主要完成如下功能 /prod/路径的请求分发到prod服务 /test/路径的请求分发到test服务 创建文件夹 ...

  9. angular反向代理配置

    Angular-cli 是基于webpack 的一套针对提升angular开发体验的命令行工具. 开发vue的时候,基于webpack的时候当时配置一个反向代理以完全实现前后端分离的体验,既然webp ...

随机推荐

  1. 序列:SEQUENCE

    一.序列介绍 Oracle的序列是一种数据库对象,主要作用是用来产生唯一值.序列被创建以后可以通过数据字典找到序列对象,因此序列可以被多个对象共享. 二.创建序列 序列使用CREATE SEQUENC ...

  2. mini_frame(web框架)

    文件目录: dynamic中:框架 static:css,jss静态文件 teplates:模板 web_server.conf: 配置文件 web_server.py: 主程序 run.sh:运行脚 ...

  3. java oracle的2种分页方法

    java oracle的2种分页方法 一物理分页: <!-- 分页查询所有的博客信息 --> <select id="findBlogs" resultType= ...

  4. P3604 美好的每一天

    真·美好的每一天(美好个鬼啊) 真·调了一下午 原因是,我之前移动指针时没有先扩再缩,所以导致区间是负的:但是正常来说也没事,可是这题卡常,桶我开的是 unsigned short ,于是区间是负的, ...

  5. YAML_08 handlers触发器

    ansible]# vim adhttp.yml --- - hosts: cache   remote_user: root   tasks:     - copy:         src: /r ...

  6. C语言函数的定义和使用(2)

    一:无参函数 类型说明符 get(){ //函数体 } 二:无参函数 类型说明符 getname(int a,int b){ //函数体 } 三:类型说明符包括: int ,char,float,do ...

  7. PHPStorm启动问题--Failed to load JVM DLL

    一.问题 启动PHPStorm时突然遇到PHPStorm无法启动的问题,提示:Failed to load JVM DLL,如图所示:

  8. 复习题之Blah数集

    题目描述: 大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于已a为基的集合Ba定义如下: (1)a是集合Ba的基,且a是Ba的第一个元素: (2)如果x在集合Ba中,则2x+1,3x+1 ...

  9. 15、Work原理及源码分析

    一.Work原理 1.图解 Worker启动Driver的一个基本原理,就是Worker内部会启动一个线程,这个线程可以理解为,就是DriverRunner,然后DriverRunner就会去负责启动 ...

  10. 在Ubuntu 18.04 下安装mysql,没有初始密码,重设root密码

    在Ubuntu 18.04 下安装mysql 不知道是由于mysql更新为新版还是.Ubuntu18.04中的特性,安装过程中没有设置密码的环节,在网络上找了半天,总算解决了!特此记录下来,以便以后查 ...