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.
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