記一次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+端口訪問,不好意思訪問不了。這樣代理的目的就達到了。
一般代理服務器的配置和帶寬比應用服務器的配置要高,這樣用戶體驗也提升了。
記一次haproxy反向代理配置