反向代理教程

反向代理教程,第1张

HAProxy反向代理搭建discuz论坛

这里用haproxy搭建一个动静分离的集群,数据格式要求varnish作为缓存文件。我们准备搭建图1.1的集群,但是手头没有足够的设备,只能委屈一下。我们要把动态服务器和静态数据服务器(主要是懒人)结合起来,一起查询数据库,共享文档,如图1.2所示。

图1.1

图1.2

文件服务器设备

#安裝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,2GB"改成以下內容,意思是应用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; } #界定2个服务器 backend server1 {     .host = "172.16.29.10";     .port = "80";     .probe = check; } backend server2 {     .host = "172.16.29.20";     .port = "80";     .probe = check; } #界定2个服务器的生产调度优化算法 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           1米     timeout connect         10s     timeout client          1米     timeout server          1米     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或官网文本文档。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/777793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存