haproxy + varnish 實現動靜分離

weixin_34138377發表於2017-09-09

網路拓撲

image

準備工作:

禁用selinux,清空防火牆規則。
iptables -F
setenforce 0

配置各主機配置:

static server:

systemctl start httpd
image

dynamic server

yum install httpd php php-mysql php-mbstring php-mcrypt
vim /var/www/html/index.php     
Dynamic Server -----three        
<?php 
 phpinfo();
?>
image

nfs以及mysql伺服器:

[root@centos7 ~]#yum  -y install nfs-server  nfs-utils mariadb-server
[root@centos7 ~]#systemctl start  nfs-server.service
[root@centos7 ~]#systemctl start  mariadb.service
[root@centos7 ~]#mysql_secure_installation  //進行mysql安全設定
[root@centos7 ~]#mysql -uroot -p123456 //以mysql的root身份登入。
MariaDB [(none)]> create database blogdb; //建立WordPress資料庫
MariaDB [(none)]> grant all on blogdb.* to wpuser@'192.168.18.%' identified by '123456';  
//建立WordPress使用者和密碼 
下載WordPress並解壓到、/app/blog下
[root@centos7 ~]#useradd -u 48  -r -s /sbin/nologin apache
[root@centos7 ~]#vim wp-config.php //直接對配置檔案修改,
/** WordPress資料庫的名稱 */
define('DB_NAME', 'blogdb');
/** MySQL資料庫使用者名稱 */
define('DB_USER', 'wpuser');
/** MySQL資料庫密碼 */
define('DB_PASSWORD', '123456');
/** MySQL主機 */
define('DB_HOST', '172.16.%。%');
[root@centos7 ~]#vim /etc/exports  //編輯nfs配置檔案
/app/blog 192.168.18.0/24(rw,all_squash,anonuid=48,anongid=48)
掛載:

[root@centos7 ~]#vim /etc/fstab //寫進配置檔案。可以以後開機自動掛載。
192.168.18.103:/app/blog        /var/www/html/blog       nfs     defaults  0 0 //在最後新增這條記錄
[root@centos7 ~]#mkdir /var/www/html/blog -pv 
[root@centos7 ~]#mount -a  
image

varnish主機:

Vim /etc/varnish/default.vcl
vcl 4.0;
import directors;   # 匯入負載均衡模組
# Default backend definition. Set this to point to your content server.
probe healthchk {    # 配置健康狀態檢查
        .url = "/.healthchk.html";   # 檢查狀態檢查的URL
        .timeout = 2s; # 超時時間
        .interval = 2s;# 每2秒檢查一次
        .window = 8; # 一共檢查的次數
        .threshold = 5; # 如果大於4次則為健康
}

backend appsrv1 {   # 配置後端主機
    .host = "172.16.251.240";
    .port = "80";
    .probe = healthchk;
}

haproxy 主機:

Vim /etc/haproxy/haproxy.cfg
    frontend  main
    bind        *:80
    rspadd          X-Via:\ HAProxy-1
    rspidel         Server.*
    acl static      path_end -i .html .css .js
    acl static      path_end -i .jpg .jpeg .gif .png
    acl static      path_beg -i /images /static
    use_backend     websrvs if static
    default_backend appsrvs
listen status
    bind *:9009
    acl auth_admin  src 192.168.52.1
    stats           enable
    stats uri       /myhaproxy?status
    stats realm     HAProxy\ Admin\ Area
    stats auth      admin:admin
    stats admin     if auth_admin
backend websrvs
    option      forwardfor header X-Client
    balance     uri
    server      web1    172.16.252.31:6081 check
    hash-type   consistent
backend appsrvs
    option      forwardfor header X-Client
    balance     uri
    server      app1     172.16.252.59:80 cookie app1 check
    hash-type   consistent
image
image

相關文章