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

反向代理:以代理服务器来接受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. dt6.0之mip改造-img正则替换mip-img

    最近没事,打算把自己的小项目改造为mip,进行测试学习,想把资讯栏目:http://zhimo.yuanzhumuban.cc/news/.全部改造为mip.但是MIP改造一项是:图片标签的改造.而且 ...

  2. .net System.IO.Stream 流操作类(FileStream等)

    Stream 是所有流的抽象基类.流是字节序列的抽象概念. 流涉及到的3个基本操作: 读取流,读取是指从流到数据结构(如字节数组)的数据传输. 写入流,写入是指从数据结构到流的数据传输. 流查找,查找 ...

  3. java中的String要点解析

    String类使我们经常使用的一个类,经常用来表示字符串常量. 字符串一旦被创建赋值,就不能被改变,因为String 底层是数组实现的,且被定义成final类型.我们可以看String源码. /** ...

  4. php自定义函数之变量函数

    在之前的变量部份,我们学习了可变变量.可变函数仅仅是可变变量的一个变种.变形表达.大理石平台价格表 可变函数,我们也会称呼为变量函数.简单回顾一下之前的知识点: <?php  $hello =  ...

  5. linux ps命令查看最消耗CPU、内存的进程

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

  6. 在新浪SAE上搭建微信公众号的python应用

    微信公众平台的开发者文档https://www.w3cschool.cn/weixinkaifawendang/ python,flask,SAE(新浪云),搭建开发微信公众账号http://www. ...

  7. Sublime Text 3 C++ 配置

    Sublime Text 3 C++ 配置 先将MinGW\bin添加至环境变量中,然后打开Sublime Text,菜单Tools->Build System->New Build Sy ...

  8. CodefChef September Challenge 2019 题解

    传送门 \(CHEFK1\) 首先连出一个环和所有的自环,剩下的每次按\(n\)个一连就可以了 //quming #include<bits/stdc++.h> #define R reg ...

  9. [golang]7种 Go 程序性能分析方法

    视频信息 Seven ways to Profile Go Applicationsby Dave Cheneyat Golang UK Conf. 2016 视频:https://www.youtu ...

  10. ZR#990

    ZR#990 解法: 首先,一个 $ k $ 进制的数的末尾 $ 0 $ 的个数可以这么判断 while(x) { x /= k; cnt++;//cnt为0的个数 } 因为这道题的 $ 0 $ 的个 ...