记一次haproxy反向代理配置


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

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

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

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

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

下面开始干活

一、安装发布代理服务haproxy

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

②:解压

tar -zxf haproxy-1.4.24.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/12     ALL  
192.168.0.0/16    ALL

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

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM