1. 背景介绍:
    1.1为了能更好的理解Linux相关常用组件,并巩固记忆,特设定以下实验,欢迎大家给做指点。非常欢迎!!!!
    1.2实验主题:nginx 反代负载均衡wordpress,使用keepalived负载nginx, 动静分离,并使用zabbix监控各个项目
    1.3(后面博客会有更多项目,增加使用corosync+pacemaker高可用,使用ELK处理收集日志,使用分布式文件系统来进行存储wordpress,最后采用ansible来自动化部署。)

博客写的比较匆忙,后期会修正做的更好,请期待!
2. 基础环境准备
    2.1 硬件环境准备(平台全采用Centos7)
                192.168.1.102  centb  nginx+keepalived(主主模型,最前采用dns轮询)
                192.168.1.108  centh  nginx+keepalived(主主模型)

                192.168.1.103  centc httpd 静态资源
                192.168.1.104  centd httpd 静态资源
               
                192.168.1.105 cente php-fpm 动态资源+memcached缓存(这里不做缓存集群)
                192.168.1.106 centf php-fpm 动态资源+zabbix
                192.168.1.107 centg  mariadb(mysql)+共享存储(nfs)
                
    2.2 配置思路
            102,108 做nginx负载,keepalived主主模型两个vip 192.168.1.11,12 ,前端采用dns负载轮询,或者每次可以改本地hosts配置文件的方式实现。(keepalived主主模型可能存在两个vip在一个节点上的情况);nginx 使用proxy模块反代向后端两组主机,动态和静态,他们都用一个共享存储nfs.

3.安装基础环境

防火墙,seliux 记得关掉即可。

由于是做好之后才进行写的本博客,可能有的地方没写。抱歉

3.1  nginx,两台同样配置,先启用一台。

    yum install -y epel.release && yum install -y nginx;

    先安装epel源

    配置文件修改,如下:vim /etc/nginx/nginx.conf,只列出关键部分。初始设置,很多功能没加

    http {

    ....

     

upstream phps {

        server 192.168.1.106:9000;  

        server 192.168.1.105:9000;

        }


        upstream webs {

        ip_hash;

        server 192.168.1.104:80;

        server 192.168.1.103:80;

        }

#反向代理的名称不能有下划线,刚开始坑死我了。

    server {

        listen       80;

        server_name  www.hyp.com;

        root /hypweb/;

        index index.php;

        

        

    location / {

        try_files $uri $uri/ /index.php$is_args$args;

        }

        

        #静态资源设置

        location ~* \.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|cer|zip)$ {

        proxy_pass http://webs;

        }

            

         #动态资源设置。这里面涉及fastcgi两种用法,参考链接https://blog.huoding.com/2013/10/23/290

         location ~*  \.php$ {

        root /hypweb;

        fastcgi_index index.php;

        include fastcgi.conf;

        fastcgi_pass phps;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        }

     

    ....

    } 

        3.2  httpd设置192.168.1.103,104

            yum install -y httpd pcre-devel 

              

            vim /etc/httpd/conf/httpd.conf

            a.设置DocumentRoot: /hypweb/   

                #/hypweb/这个是共享存储的路径,这里暂时不存在,后面会有设置

            b. 中Require all granted

         

        3.3 php-fpm 105 106

               yum install -y php php-fpm prce-devel pcre php-mysql

                vim /etc/php-fpm.d/www.conf

                listen 192.168.1.105:9000; 106对应改一下

                 修改完后,touch一个session文件;

                touch  /var/lib/php/session;chown apache.apache /var/lib/php/session;

                有的时候它不自己创建

          3.4 共享存储nfs 和mysql

                103-106 yum install -y nfs-utils;

                107 yum install -y nfs nfs-utils mariadb

                创建共享目录

                  mkdir /hypweb/;chmod  -R 777 /hypweb/;

                    说明:有人把权限修改成 chown -R apache:apache  /hypweb/,如果是这样,其他所有节点中要注意读写权限,新增同样id的 apache用户和组。

                    还有/mysql ,一样设置;

                 vim  /etc/exports

/hypweb/ *(rw,sync,no_root_squash,no_all_squash)

/mysql/ *(rw,sync,no_root_squash,no_all_squash)

   其他节点 103-106 创建完/hypweb/后,直接mout 就可以了。

    vim /etc/profile.d/hyp.sh;

    mount -t nfs -o rw   192.168.1.107:/hypweb  /hypweb;

    开机自动加载;当前  .  /etc/profile.d/hyp.sh  重读配置文件。


    3.5直接将wordpress文件解压到 共享存储 /hypweb/下面即可。

       然后将nginx .httpd php-fpm全部重新起来,并设置开机启动 systemctl enable 服务名称。

    直接访问 192.168.1.102 即可看到 或者本地设置 hosts文件中对应域名,也可以直接打开wordpress