Centos7 haproxy動靜分離
Centos7 haproxy動靜分離
實現的結果:
當客戶端訪問haproxy時,請求的是靜態檔案內容時,請求轉交給static server,請求的是php內容時,請求轉交給php server,請求的是jsp內容時,請求轉交給tomcat server,以實現動靜分離。
haproxy伺服器:192.168.80.100
先部署三臺web伺服器:
一臺httpd支援php 192.168.80.101
一臺部署httpd支援靜態資源 192.168.80.102
一臺tomcat支援jsp 192.168.80.103192.168.80.100:
1、安裝編譯環境與軟體yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
2、原始碼編譯安裝haproxytar xzvf haproxy-1.5.15.tar.gz -C /opt
cd /opt/haproxy-1.5.15
make TARGET=linux26 PREFIX=/usr/local/haproxy //標識64為系統
make install PREFIX=/usr/local/haproxy
3、配置haproxy配置檔案mkdir /etc/haproxy
useradd -s /sbin/nologin -M haproxy
cp /opt/haproxy-1.5.15/examples/haproxy.cfg /etc/haproxy/
vi /etc/haproxy/haproxy.cfg #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global log 127.0.0.1 local3 maxconn 204800 chroot /usr/local/haproxy user haproxy group haproxy daemon nbproc 1 pidfile /var/run/haproxy.pid stats socket /usr/local/haproxy/stats description haproxy server #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults log global mode http maxconn 10000 option httplog option httpclose option dontlognull option forwardfor except 127.0.0.0/8 retries 3 option redispatch option abortonclose balance roundrobin timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s #--------------------------------------------------------------------- # use listen setting the haproxy status for site #--------------------------------------------------------------------- listen admin_status #設定haproxy監控狀態 bind *:8089 mode http log 127.0.0.1 local3 err stats refresh 5s stats uri /status #監控狀態頁面訪問url stats realm www.skeryp.com stats auth admin:admin stats hide-version stats admin if TRUE #--------------------------------------------------------------------- # main listen which proxys to the backends #--------------------------------------------------------------------- listen www bind *:80 maxconn 5000 mode http log global option httplog option httpclose option forwardfor log global default_backend default #設定預設訪問頁面 #定義當請求的內容是靜態內容時,將請求轉交給static server的acl規則 acl url_static path_beg -i /static /images /img /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js .html acl host_static hdr_beg(host) -i img. video. download. ftp. imags. videos. #定義當請求的內容是php內容時,將請求轉交給php server的acl規則 acl url_php path_end -i .php #定義當請求的內容是.jsp或.do內容時,將請求轉交給tomcat server的acl規則 acl url_jsp path_end -i .jsp .do #引用acl匹配規則 use_backend static_pool if url_static or host_static use_backend php_pool if url_php use_backend tomcat_pool if url_jsp #定義後端backend server backend static_pool option httpchk GET /index.html server static1 192.168.80.101:80 cookie id1 check inter 2000 rise 2 fall 3 backend php_pool option httpchk GET /info.php server php1 192.168.80.102:80 cookie id1 check inter 2000 rise 2 fall 3 backend tomcat_pool option httpchk GET /index.jsp server tomcat1 192.168.80.103:8086 cookie id2 check inter 2000 rise 2 fall 3 #<----------------------default site for listen and frontend------------------------------------> backend default mode http option httpchk GET /index.html server default 192.168.80.104:80 cookie id1 check inter 2000 rise 2 fall 3 maxconn 5000
192.168.80.101:
1、安裝phpyum install -y php
2、安裝php外掛
yum install -y \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mbstring \
php-bcmath \
php-mhash
3、修改配置檔案
vi /etc/httpd/conf/httpd.conf
ServerName www.aa.com
DirectoryIndex index.html index.php
vi /etc/php.ini date.timezone = PRC 日期時區=×××
4、建立一個php網頁
cd /var/www/html
vi index.php
<?php
phpinfo();
?>
systemctl start httpd
瀏覽器輸入:192.168.80.101
192.168.80.102:
1、安裝httpdyum install httpd -y
2、安裝上傳軟體yum install lrz* -y
3、修改配置檔案
vi /etc/httpd/conf/httpd.conf
ServerName www.aa.com
4、建立一個img目錄,在給img目錄裡放進去一張圖片,在建立一個index.html網頁
cd /var/www/html
mkdir img
放進入一張圖片,找一張圖片直接拉到Xshell
cd ..
vi index.html
<h1>靜態</h1>
systemctl start httpd
瀏覽器輸入:192.168.80.102
192.168.80.102/img/圖片名稱.格式
192.168.80.103:
軟體包自己去網上找
1、安裝JAVAtar xf jdk-8u144-linux-x64.tar.gz
cp -rv jdk1.8.0_144/ /usr/local/java
vi /etc/profile //在檔案末尾新增
export JAVA_HOME=/usr/local/java 安裝路徑
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
source /etc/profile
2、安裝tomcat
cp -r apache-tomcat-8.5.23 /usr/local/tomcat8
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
tomcatup
netstat -anpt | grep 8080
瀏覽器輸入:192.168.80.103:8080
測試:瀏覽器中輸入
192.168.80.100:8089/status 統計頁面
瀏覽器中輸入:192.168.80.100/index.php
192.168.80.100/img/圖片名稱.格式
192.168.80.100/index.jsp