<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Haproxy實現web的頁面的動靜分離

      一、Haproxy概述;
      概述:Haproxy是一個開源的高性能的反向代理或者說是負載均衡服務軟件之一,由C語言編寫而成,支持會話保持、七層處理、健康檢查、故障修復后自動加載、動靜分離。HAProxy運行在當前的硬件上,完全可以支持數以萬計的并發連接;
      Haproxy軟件引入了frontend,backend的功能,frontend(acl規則匹配)可以運維管理人員根據任意HTTP請求頭做規則匹配,然后把請求定向到相關的backend(server pools等待前端把請求轉過來的服務器組)。
      二、Haproxy原理實現;
      代理模式:
      1.四層tcp代理:例如:可用于郵件服務內部協議通信服務器、Mysql服務等;
      2.七層應用代理:例如:HTTP代理或https代理。在4層tcp代理模式下,Haproxy僅在客戶端和服務器之間雙向轉發流量。但是在7層模式下Haproxy會分析應用層協議,并且能通過運行、拒絕、交換、增加、修改或者刪除請求(request)或者回應(reponse)里指定內容來控制協議。
      四層代理:
      ISO參考模型中的第四層傳輸層。四層負載均衡也稱為四層交換機,它主要是通過分析IP層及TCP/UDP層的流量實現的基于IP加端口的負載均衡。常見的基于四層的負載均衡器有LVS、F5等。以常見的TCP應用為例,負載均衡器在接收到第一個來自客戶端的SYN請求時,會通過設定的負載均衡算法選擇一個最佳的后端服務器,同時將報文中目標IP地址修改為后端服務器IP,然后直接轉發給該后端服務器,這樣一個負載均衡請求就完成了。從這個過程來看,一個TCP連接是客戶端和服務器直接建立的,而負載均衡器只不過完成了一個類似路由器的轉發動作。在某些負載均衡策略中,為保證后端服務器返回的報文可以正確傳遞給負載均衡器,在轉發報文的同時可能還會對報文原來的源地址進行修改。整個過程下圖所示。
      haproxy4層.png
      七層代理:
      ISO參考模型中的最高層第七層應用層。七層負載均衡也稱為七層交換機,此時負載均衡器支持多種應用協議,常見的有HTTP、FTP、SMTP等。七層負載均衡器可以根據報文內容,再配合負載均衡算法來選擇后端服務器,因此也稱為“內容交換器”。比如,對于Web服務器的負載均衡,七層負載均衡器不但可以根據“IP+端口”的方式進行負載分流,還可以根據網站的URL、訪問域名、瀏覽器類別、語言等決定負載均衡的策略。例如,有兩臺Web服務器分別對應中英文兩個網站,兩個域名分別是A、B,要實現訪問A域名時進入中文網站,訪問B域名時進入英文網站,這在四層負載均衡器中幾乎是無法實現的,而七層負載均衡可以根據客戶端訪問域名的不同選擇對應的網頁進行負載均衡處理。常見的七層負載均衡器有HAproxy、Nginx等。
      這里仍以常見的TCP應用為例,由于負載均衡器要獲取到報文的內容,因此只能先代替后端服務器和客戶端建立連接,接著,才能收到客戶端發送過來的報文內容,然后再根據該報文中特定字段加上負載均衡器中設置的負載均衡算法來決定最終選擇的內部服務器。縱觀整個過程,七層負載均衡器在這種情況下類似于一個代理服務器。整個過程如下圖所示。
      haproxy7層.png
      調度算法:
      balance roundrobin:表示簡單的輪詢,負載均衡基礎算法
      balance static-rr:表示根據權重
      balance leastconn:表示最少連接者先處理
      balance source:表示根據請求源IP
      balance uri:表示根據請求的URI;
      balance url_param:表示根據請求的URl參數來進行調度
      balance hdr(name):表示根據HTTP請求頭來鎖定每一次HTTP請求;
      balance rdp-cookie(name):表示根據據cookie(name)來鎖定并哈希每一次TCP請求。

      三、常見的代理了解
      1、lvs和硬件F5,是基于IP的三層負載,硬件適配性能好,處理性能強。
      2、haproxy,可以適配三層負載均衡,同樣可以適配七層。對于頁面明確有請求分離的時候,可以使用haproxy。
      3、nginx,對于日PV小于500萬,對于需要進行高并發的站點,可以使用nginx代理

      四、haproxy配置文件講解

      global:全局配置區域參數是進程級的,通常是和操作系統相關。這些參數一般只設置一次,如果配置無誤,就不需要再次進行修改;
      image.png

      defaults:配置默認參數,這些參數可以被用到frontend,backend,Listen組件;
      image.png
      frontend:處理請求的虛擬節點,Frontend可以將匹配到本地區域的請求交給下邊的backend;
      backend:后端服務集群的配置,是真實服務器,一個Backend對應一個或者多個實體服務器;

      五、案例:Haproxy+Nginx+Tomcat搭建高可用集群

      tuobu

      系統類型 IP地址 主機名
      Centos 7.5.1804 ens36-192.168.137.111/24: keepliv
      Centos 7.5.1804 ens36-192.168.137.112/24: nginx1
      Centos 7.5.1804 ens36-192.168.137.113/24: nginx2
      Centos 7.5.1804 ens36-192.168.137.114/24: tomcat1
      Centos 7.5.1804 ens36-192.168.137.115/24: tomcat2
      實例步驟

      用到的安裝包
      image.png
      安裝包鏈接

      配置nginx節點nede1、node2,準備網頁,測試節點
      配置參照lnmp配置
      測試[root@keepliv init.d]# curl 192.168.137.112
      node1
      [root@keepliv init.d]# curl 192.168.137.113
      node2

      配置tomcat節點,準備網頁啟動服務,測試節點(
      倆臺tomcat)

      安裝配置haproxy程序

      1、配置tomcat服務器

      [root@tomcat1 ~]# ls
      anaconda-ks.cfg  apache-tomcat-9.0.14.tar.gz  jdk-11.0.1_linux-x64_bin.tar.gz
      tar zxvf jdk-11.0.1_linux-x64_bin.tar.gz 
      mkdir /usr/localjava
      mv jdk-11.0.1 /usr/local/java
      ls /usr/local/java
      cat <<END >> /etc/profile
      export JAVA_HOME=/usr/local/java
      export PATH=$PATH:/usr/local/java/bin
      END
      source /etc/profile
      java -version
      tar zxvf apache-tomcat-9.0.14.tar.gz 
      mkdir /usr/local/tomcat
      mv apache-tomcat-9.0.14 /usr/local/tomcat
      ls /usr/local/tomcat/
      /usr/local/tomcat/bin/startup.sh 
      netstat -lntup |grep java
      [root@tomcat1 ~]# netstat -lntup |grep java
      tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      4062/java           
      tcp6       0      0 :::8009                 :::*                    LISTEN      4062/java           
      tcp6       0      0 :::8080                 :::*                    LISTEN      4062/java    
      ##tomcat2和tomcat1配置思路相同
      ##配置倆個的站點目錄和內容
      mkdir -p /web/webapp
      [root@tomcat1 ~]# cat /web/webapp/index.jsp 
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <html>
        <head>
           <title>JSP TEST PAGE1 </title>
        </head>
        <body>
           <% out.println("Welcome to test site;http://tomcat1");%>
        </body>
      </html>
      [root@tomcat1 ~]# cat -n /usr/local/tomcat/conf/server.xml
      ...
      150	      <Context docBase="/web/webapp" path="" reloadable="false"></Context> #添加了站點根目錄
      ...
      ##測試
      [root@keepliv init.d]# curl 192.168.137.114:8080
      
      <html>
        <head>
           <title>JSP TEST PAGE1 </title>
        </head>
        <body>
           Welcome to test site;http://tomcat1
      
        </body>
      </html>
      [root@keepliv init.d]# curl 192.168.137.115:8080
      
      <html>
        <head>
           <title>JSP TEST PAGE1 </title>
        </head>
        <body>
           Welcome to test site;http://tomcat2
      
        </body>
      </html>
      

      2、安裝haproxy

      yum -y install pcre-devel bzip2-devel			##安裝依賴軟件包
      tar zxvf haproxy-1.7.9.tar.gz -C /usr/src/
      cd /usr/src/haproxy-1.7.9/
      uname -r #查看內核版本
      make TARGET=linux310 #編譯時需要指定內核版本
      make install
      

      3、配置haproxy服務:

      mkdir /etc/haproxy
      vim /etc/haproxy/haproxy.cfg
      [root@keepliv init.d]# cat /etc/haproxy/haproxy.cfg 
      global
              log 127.0.0.1   local0 info                     ##定義日志級別;
              log 127.0.0.1   local1 notice
              maxconn 4096            ##設定每個haproxy進程所接受的最大并發連接數
              uid 99                  ##指定運行服務的用戶和組
              gid 99
              daemon                  ##指定運行模式為daemon,以守護進程的方式工作在后臺
      defaults
              log     global                          ##采取global中的日志配置
              mode    http                            ##默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
              option  httplog                         ##采用http日志格式記錄日志
              option  dontlognull                     ##不記錄健康檢查的日志記錄
              option httpclose                        ##關閉保持連接
              retries 3                               ##檢查節點最多失敗次數
              maxconn 2000                            ##最大連接數,定義不得大于global中的值
              contimeout      5000    ##連接超時時間,毫秒,在此期間,如若客戶端與服務端無法成功建立連接,則斷掉
              clitimeout      50000   ##設置連接客戶端發送數據時的成功連接最長等待時間,單位為毫秒,如若在這期間無法請求成功,則斷掉
              srvtimeout      50000   ##設置服務器端回應客戶端數據發送的最長等待時間,如果在這期間還無法發送成功,則斷掉
      
      ##################無分離頁面需求的配置##############
      #listen webcluster 0.0.0.0:80                   ##指定haproxy服務監聽地址和端口
      #       option  httpchk GET /index.html         ##指定http請求方法和默認文件
      #       balance roundrobin                      ##指定輪詢調度算法
      #       server  inst1 192.168.100.155:80 check inter 2000 fall 3                ##定義web節點,檢測心跳頻率,單位為毫秒,定義檢查節點最多失敗次數
      #       server  inst2 192.168.100.156:80 check inter 2000 fall 3
      
      ##################有分離頁面需求的配置##############
      frontend http                           ##定義名稱為http
              bind *:80                       ##指定監聽地址和端口
              acl linuxfan1 hdr_end(host) -i 192.168.137.111                  ##指定類型為訪問路徑的域名,-i不區分大小寫
              acl linuxfan2 hdr_end(host) -i 192.168.137.111
      
              acl linuxfan3 path_end -i .jsp .do .css .js                     ##指定請求文件格式為.jsp
              #acl linuxfan3 hdr_reg -i \.(css|png|jpg|jpeg|gif|ico|swf|xml|txt|pdf|do|jsp|js)$       ##調用正則表達式
              acl linuxfan4 path_end -i .html .css .png .jpg .jpeg .xml       ##指定請求文件格式為.html
      
              acl linuxfan5 path_beg -i /WebRoot                              ##指定訪問URL中的路徑,如http://www.linuxfan.cn/WebRoot/index.jsp
      
              use_backend dongtai if linuxfan1 linuxfan3
              use_backend dongtai if linuxfan2 linuxfan3
              use_backend dongtai if linuxfan1 linuxfan5 linuxfan3
              use_backend dongtai if linuxfan2 linuxfan5 linuxfan3
      
              default_backend jingtai                                 ##默認的請求使用backend dongtai
      
      backend jingtai         ##定義backend :jingtai
              mode http                       ##定義模式
              balance roundrobin              ##定義調度算法為輪詢
              server jingtai01 192.168.137.112:80 check inter 2000 fall 3             ##定義節點
              server jingtai02 192.168.137.113:80 check inter 2000 fall 3
      
      backend dongtai
              mode http
              balance roundrobin
              server dongtai01 192.168.137.114:8080 check inter 2000 fall 3
              server dongtai02 192.168.137.115:8080 check inter 2000 fall 3
      ##啟動haproxy服務
        148  cp /usr/src/haproxy-1.7.9/examples/haproxy.init /etc/init.d/haproxy
        149  chmod +x /etc/init.d/haproxy 
        150  ln -s /usr/local/sbin/haproxy /usr/sbin/
        151  /etc/init.d/haproxy start
        152  netstat -lntup 
        153  firewall-cmd --add-port=80/tcp --permanent 
        154  firewall-cmd --add-port=80/tcp 
      

      4、測試集群
      點擊刷新.png
      下一個.png
      點擊刷新jsp.png
      下一個.png

      5、配置haproxy的日志文件分離(查看haproxy日志)

      [root@keepliv init.d]# cat /etc/rsyslog.conf |egrep -v '^#|^$'
      $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
      $ModLoad imjournal # provides access to the systemd journal
      $ModLoad imudp  ##接收udp系統日志
      $UDPServerRun 514  ##開啟udp514端口
      $WorkDirectory /var/lib/rsyslog
      $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
      $IncludeConfig /etc/rsyslog.d/*.conf
      $OmitLocalLogging on
      $IMJournalStateFile imjournal.state
      *.info;mail.none;authpriv.none;cron.none                /var/log/messages
      authpriv.*                                              /var/log/secure
      mail.*                                                  -/var/log/maillog
      cron.*                                                  /var/log/cron
      *.emerg                                                 :omusrmsg:*
      uucp,news.crit                                          /var/log/spooler
      local7.*                                                /var/log/boot.log
      local0.*						/var/log/haproxy/haproxy-info.log #指定了倆個日志級別的文件,方便查看
      local1.*						/var/log/haproxy/haproxy-notice.log
      [root@keepliv init.d]# cat /etc/sysconfig/rsyslog 
      # Options for rsyslogd
      # Syslogd options are deprecated since rsyslog v3.
      # If you want to use them, switch to compatibility mode 2 by "-c 2"
      # See rsyslogd(8) for more details
      SYSLOGD_OPTIONS=""
      SYSLOGD_OPTIONS="-r -m 0 -c 2"
      #-r 接收udp 514號端口的系統日志消息;-m 0 為日志消息添加時間等的標記 ;-c 2表示使用兼容模式
      systemctl restart rsyslog
      /etc/init.d/haproxy  restart
      #刷新測試頁面,查看日志
      [root@keepliv init.d]# tail -n 5 /var/log/haproxy/haproxy-info.log 
      Dec 24 22:19:24 localhost haproxy[5489]: 192.168.137.1:55899 [24/Dec/2018:22:19:24.521] http dongtai/dongtai02 0/0/1/3/4 200 340 - - ---- 1/1/0/0/0 0/0 "GET /index.jsp HTTP/1.1"
      Dec 24 22:19:24 localhost haproxy[5489]: 192.168.137.1:55900 [24/Dec/2018:22:19:24.679] http dongtai/dongtai01 0/0/0/3/3 200 340 - - ---- 1/1/0/0/0 0/0 "GET /index.jsp HTTP/1.1"
      Dec 24 22:19:24 localhost haproxy[5489]: 192.168.137.1:55901 [24/Dec/2018:22:19:24.831] http dongtai/dongtai02 0/0/0/3/4 200 340 - - ---- 1/1/0/0/0 0/0 "GET /index.jsp HTTP/1.1"
      Dec 24 22:19:25 localhost haproxy[5489]: 192.168.137.1:55902 [24/Dec/2018:22:19:25.000] http dongtai/dongtai01 0/0/1/2/4 200 340 - - ---- 1/1/0/0/0 0/0 "GET /index.jsp HTTP/1.1"
      Dec 24 22:19:25 localhost haproxy[5489]: 192.168.137.1:55903 [24/Dec/2018:22:19:25.145] http dongtai/dongtai02 0/0/1/1/3 200 340 - - ---- 1/1/0/0/0 0/0 "GET /index.jsp HTTP/1.1"
      [root@keepliv init.d]# tail -n 5 /var/log/haproxy/haproxy-notice.log.log 
      tail: 無法打開"/var/log/haproxy/haproxy-notice.log.log" 讀取數據: 沒有那個文件或目錄
      [root@keepliv init.d]# tail -n 5 /var/log/haproxy/haproxy-notice.log
      Dec 24 22:18:33 localhost haproxy[5160]: Proxy jingtai stopped (FE: 0 conns, BE: 22 conns).
      Dec 24 22:18:33 localhost haproxy[5160]: Proxy dongtai stopped (FE: 0 conns, BE: 19 conns).
      Dec 24 22:18:33 localhost haproxy[5488]: Proxy http started.
      Dec 24 22:18:33 localhost haproxy[5488]: Proxy jingtai started.
      Dec 24 22:18:33 localhost haproxy[5488]: Proxy dongtai started.
      

      6、配置haproxy服務器的日志管理web界面

      [root@keepliv init.d]# firewall-cmd --add-port=9090/tcp
      success
      [root@keepliv init.d]# firewall-cmd --add-port=9090/tcp --permanent 
      success
      [root@keepliv init.d]# vim /etc/haproxy/haproxy.cfg 
      ##在最后追加
      listen  admin 
          bind :9090
          server web6c 192.168.137.111:9090 check 
          stats enable  #開啟監聽
          stats uri /status #設置監聽的url
          stats auth admin:123   #認證信息
          stats auth qq:123
          stats realm admin\ xxx  #設置認證的默認提示
          stats hide-version  #隱藏版本
          stats refresh 10s
          stats admin if TRUE #TRUE這個關鍵字表示只有經過認證成功后才能被管理
      [root@keepliv init.d]# /etc/init.d/haproxy restart
      Restarting haproxy (via systemctl):                        [  確定  ]
      

      測試
      輸入用戶.png
      美滋滋

      看到以上界面實驗就做完了

      END

      posted @ 2018-12-25 07:08  聽_風~  閱讀(1075)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 色欲av亚洲一区无码少妇| 人人人澡人人肉久久精品| 成人午夜视频一区二区无码| 亚洲人成电影在线天堂色| 武功县| 九九成人免费视频| 五月婷久久麻豆国产| 延庆县| 国产毛片子一区二区三区| 亚洲欧美成人一区二区三区| 色欲狠狠躁天天躁无码中文字幕| 91麻豆精品国产91久| 最新午夜男女福利片视频| 18禁亚洲一区二区三区| 国产成人综合网亚洲第一| 色偷偷女人的天堂亚洲网| 亚洲无人区码一二三四区| 国产精品中文字幕观看| 国精品无码一区二区三区左线| 国产av综合一区二区三区| 亚洲真人无码永久在线| 国产麻豆9l精品三级站| 综合色在线| 东京热人妻无码一区二区av| 免费午夜无码片在线观看影院| 久久视频这里只精品| 国产国产久热这里只有精品| 国产精品v片在线观看不卡| 日本边添边摸边做边爱的网站| 在线无码免费看黄网站| 精品无码黑人又粗又大又长 | 娇小萝被两个黑人用半米长| 国产精自产拍久久久久久蜜| 成人网站网址导航| 江口县| 亚洲色在线v中文字幕| 免费A级毛片无码A∨蜜芽试看 | 国产亚洲精品综合99久久| 精品国产亚洲午夜精品av| 国产精品免费看久久久| 精品国产一区二区亚洲人|