1. 程式人生 > >記一次haproxy反向代理配置

記一次haproxy反向代理配置

代理配置 pan internet 接受 rdf refresh 內網 反向代理服務 client

首先借用一下前輩的話,解釋下反向代理是什麽?

反向代理:以代理服務器來接受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+端口訪問,不好意思訪問不了。這樣代理的目的就達到了。

一般代理服務器的配置和帶寬比應用服務器的配置要高,這樣用戶體驗也提升了。

記一次haproxy反向代理配置