由于电脑配置渣,带不动多台虚拟机,所以采用httpd虚拟主机的方式来实现
1 2 3
| CentOS 6.7 httpd: 2.2.15 HAProxy: 1.5.4
|
主机规划
1 2 3 4 5
| - 172.18.1.49:8080 -->web server1 - 172.18.1.49:8081 -->web server2 - 172.18.1.49:8088 -->app server1 - 172.18.1.49:8089 -->app server2 -
|
配置虚拟主机
安装httpd及PHP
1 2
| yum install httpd php -y yum install haproxy -y
|
修改httpd主机监听的端口
1 2 3 4 5 6 7
| Listen 8080 Listen 8081 Listen 8088 Listen 8089
|
配置虚拟主机websrv1
注意:CentOS7默认安装的是Httpd2.4+,所以,在配置虚拟主机时,allow from all要改为Require all granted
1 2 3 4 5 6 7 8 9
| vim /etc/httpd/conf.d/websrv1.conf DirectoryIndex index.html <virtualhost 172.18.1.49:8080> DocumentRoot /data/webdoc1/ <directory "/data/webdoc1"> allow from all # apache2.4版本要改为Require all granted,下同! </directory> </virtualhost>
|
配置虚拟主机websrv2
1 2 3 4 5 6 7 8 9
| vim /etc/httpd/conf.d/websrv2.conf DirectoryIndex index.html <virtualhost 172.18.1.49:8081> DocumentRoot /data/webdoc2/ <directory "/data/webdoc2"> allow from all </directory> </virtualhost>
|
配置虚拟主机appsrv1
1 2
| vim /etc/httpd/conf.d/app1.conf DirectoryIndex index.php <virtualhost 172.18.1.49:8088> DocumentRoot /data/appdoc1/ <directory "/data/appdoc1"> allow from all </directory> </virtualhost>
|
配置虚拟主机appsrv2
1 2 3 4 5 6 7 8 9
| vim /etc/httpd/conf.d/app2.conf DirectoryIndex index.php <virtualhost 172.18.1.49:8089> DocumentRoot /data/appdoc2/ <directory "/data/appdoc2"> allow from all </directory> </virtualhost>
|
为各主机提供测试页
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| vim /data/webdoc1/index.html <h1>web-server1</h1> #websrv2 vim /data/webdoc2/index.html <h1>web-server2</h1> #appsrv1 vim /data/appdoc1/index.php <h1>app-server1</h1> <?php phpinfo(); ?> #appsrv2 vim /data/appdoc2/index.php <h1>app-server2</h1> <?php phpinfo(); ?>
|
修改HAProxy配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| frontend http-in bind 172.18.1.49:80 #监听的端口 acl url_static path_end -i .jpg .png .html .css .jsp #acl规则分离静态资源 use_backend websrv if url_static default_backend appsrv #默认使用动态后端主机 backend websrv #后端静态主机组 balance roundrobin server srv1 172.18.1.49:8080 check server srv2 172.18.1.49:8081 check backend appsrv #后端动态主机组 balance roundrobin server app1 172.18.1.49:8088 check server app2 172.18.1.49:8089 check listen stats 172.18.1.49:9001 #提供一个管理页面 stats enable stats uri /admin?stats stats hide-version stats auth admin:admin
service httpd start
service haproxy start
|