HAProxy反向代理搭建discuz论坛
这里使用haproxy构建一个动静分离的集群,并且静态数据请求使用varnish做缓存。本打算做图1.1的集群,但是手头机器不够,只好委曲求全把动态服务器和静态服务器和到一起(主要是懒),数据库和共享文件和到一起如图1.2
图1.1
图1.2
file服务器的配置
#安装mysqld和nfs服务器 yum install mysql-server nfs-utils -y #提供网页文件 mkdir /wordpress wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip unzip Discuz_X3.2_SC_UTF8.zip -d /wordpress chown -R apache:apache /wordpress cat > /etc/exports <<eof /wordpress 172.16.0.0/16(rw,no_root_squash) eof service nfs start #提供数据库 service mysqld start mysql <<eof grant all privileges on wpdb.* to wpuser@'172.16.29.%'identified by "wppass"; eof
Rs服务器的配置
yum install nfs-utils httpd php php-mysql -y cat >> /etc/fstab <<eof 172.16.29.1:/wordpress /wordpress nfs defaults 0 0 eof mkdir /wordpress mount -a #以下是提供httpd配置文件 vim /etc/httpd/conf/httpd.conf #把DocumentRoot "/var/www/html"改成如下 DocumentRoot "/wordpress/upload" #把<Directory "/var/www/html">改为如下内容 <Directory "/wordpress"> #把DirectoryIndex index.html改成如下内容 DirectoryIndex index.php index.html #启动服务 systemctl start httpd.service
varnish服务器的配置
yum install varnish -y vim /etc/varnish/varnish.params #把VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,1G"改为如下内容,意思是使用512m的内存进行缓存数据 VARNISH_STORAGE="malloc,512m"
cat > /etc/varnish/default.vcl <<eof #提供如下配置文件 vcl 4.0; import directors; backend default { .host = "127.0.0.1"; .port = "8080"; } #定义后端服务器状态检测机制 probe check { .url = "/robots.txt"; .window = 5; .threshold = 3; .interval = 2s; .timeout = 1s; } #定义两个服务器 backend server1 { .host = "172.16.29.10"; .port = "80"; .probe = check; } backend server2 { .host = "172.16.29.20"; .port = "80"; .probe = check; } #定义两个服务器的调度算法 sub vcl_init { new static = directors.round_robin(); static.add_backend(server1); static.add_backend(server2); } #定义命中 sub vcl_recv { set req.backend_hint = static.backend(); } sub vcl_backend_response { } sub vcl_deliver { } eof
haproxy服务器通用配置配置
两个haproxy服务器的keepalived的配置文件有细微的差别,注意注释信息
yum install haproxy keepalived -y cat > /etc/haproxy/haproxy.cfg <<eof global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main *:80 #静态数据访问重定向到动态服务器,其他的动态服务器 acl url_static path_beg -i /static /p_w_picpaths /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app #状态页 listen admin_stats bind *:8080 stats enable stats uri /haproxy11 acl hastats src 172.16.0.0/16 block unless hastats #静态服务器 backend static balance roundrobin server static 172.16.29.40:6081 check #动态服务器 backend app balance source server rs1 172.16.29.10:80 check server rs2 172.16.29.20:80 check eof systemctl restart haproxy.service
cat > /etc/keepalived/keepalived.conf <<eof #keepalived的配置文件 ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1 vrrp_mcast_group 224.0.29.29 #这个脚本是为了维护代理服务器Haproxy时使用的 vrrp_script chk_down { script "[[ -f /etc/haproxy/down ]] && exit 1 || exit 0" interval 1 weight -20 } #这个脚本是为了检测代理服务器Haproxy的状态 vrrp_script chk_haproxy { script "killall -0 haproxy && exit 0 || exit 1" interval 1 weight -20 } } vrrp_instance VI_1 { #另一台主机的下一行改为MASTER state BACKUP interface eno16777736 virtual_router_id 51 #另一台主机的下一行改为100 priority 90 advert_int 1 authentication { auth_type PASS auth_pass oldking } virtual_ipaddress { 172.16.29.11/16 dev eno16777736 label eno16777736:0 } track_script { chk_down chk_haproxy } } eof
我这里haproxy介绍的不够详细,参考这个博客http://www.cnblogs.com/dkblog/archive/2012/03/13/2393321.html,或者官方文档

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Windows Server 群集节点和资源监视
群集节点监视 如果将群集资源类比为鸡蛋,那么群集节点类似于装有鸡蛋的篮子,篮子本身的完整决定着里面所装的鸡蛋的安全性。群集节点首先要决定自己是否存活,所以群集节点之间定期使用心跳来判断所有群集节点是否处于健康状态。群集的可用性目标因提供的服务的要求而异,不同服务等级要求的应用对故障恢复时间要求也不同,对健康检测严格要求也不同。同理,可用性要求越高的服务,对检测节点故障和采取后续行动进行恢复的速度越快,可用性要求不高的服务,对于故障恢复时间的容忍也相对要长。鉴于此,Windows Server群集初始具有两类严格程度不同的默认检测策略: 严格监控(AggressiveMonitoring):提供最快速的检测和恢复策略,保障最大的可用性。群集故障容忍度低,即使短暂的故障也要避免,以至于群集节点出现短暂的网络故障时,群集也会该节点上的应用迁出到正常的节点。 宽松监控(RelaxedMonitoring):提供相对宽松的检查策略,群集故障容忍度相对严格监控要高,允许短暂的群集节点故障。 严格监控和宽松监控都是相对的,可以使用两个具体的参数来测量,一个参数是心跳频率(Delay),一个参数是心跳...
-
下一篇
Nginx+tomcat session cluster会话保持实验
Nginx+tomcat session cluster会话保持实验 实验要求: 1、nginx+tomcat 负载均衡 2、会话保持 实验拓扑 ip网络规划 Nginxnode2:172.16.76.20 tomcatAnode3:172.16.76.30 tomcatBnode4:172.16.76.40 基础配置 node2: [root@node2~]# yum install nginx –y node3: [root@node3~]#yuminstalltomcat–y [root@node3~]#cd/var/lib/tomcat/webapps/ [root@node3webapps]#mkdir-pvtest/{claess,lib,WEB-INF [root@node3webapps]#vimtest/index.jsp <%@pagelanguage="java"%> <html> <head><title>TomcatA</title></head> <body&g...
相关文章
文章评论
共有0条评论来说两句吧...