所处层 | 服务器类型 | IP | 备注 |
Storage | NFS主服务器 | 172.16.1.20 | 为web集群提供文件存储与共享服务,使各web服务器中的web程序数据能够同步 |
NFS备份服务器 | 172.16.1.21 | 该服务器为NFS服务器的备份服务器,使用rsync+ inotify与主NFS服务器进行数据同步,在主NFS服务器宕机\数据被破坏时将web服务器集群挂载切换到该服务器,能够得到相应补救 | |
Mysql主服务器 | 172.16.1.10 | 为web集群提供数据库写入服务,使用mariadb的master/slave架构进行读写分离,提高数据库稳定性 | |
Mysql从服务器 | 172.16.1.11 | 为web集群提供数据读取服务 | |
Server Array | Web服务器0 | 172.16.1.30 | Nginx+xcache架构,挂载NFS主服务器共享目录,Web应用程序为Thinkphp自带读写分离,链接172.16.1.10-11两台服务器,xcache提供PHP编译缓存加速访问速度 |
Web服务器1 | 172.16.1.31 | 同上 | |
Load Blance | Nginx反向代理主服务器 | 内:172.16.1.1 外:8.8.8.6 | Nginx负载均衡+keepalived架构,Nginx反向代理内网web服务器并配置负载均衡,keepalived一旦检测到NGINX服务停止便使用vrrp协议向备用服务器发送组播通告将VIP-8.8.8.8绑定到备用服务器 |
Nginx反向代理备服务器 | 内:172.16.1.2 外:8.8.8.7 | 作用同上 | |
Redis服务器 | 172.16.1.32 | Redis服务器负责两台web服务器的session共享服务,保证用户访问负载均衡服务器能够拥有相同的session |
MariaDB****简述 Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。 起初是供俄国大型的入口网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。
Xcache****简述 XCache是一套快速稳定的PHP代码加速器。在Linux下测试,高负载状况下表现良好,同时还支持ThreadSafe/Windows。解决了其他opcacher存在的问题,比如可以支持新的PHP版本。其中一个开发者也同时是Lighttpd的开发者。开发解决了一些限制在现有的解决方案中。支持PHP 5.x以上版本,仍在积极维护中。
Nginx0服务器搭建:
hostname moodleServer0
yum -y update
#配置NFSClient
yum -y install rpcbind nfs-utils
echo "172.16.1.20:/nfsshare/moodleWeb1 /http/html/ nfs defaults 0 0" >> /etc/fstab
#安装NGINX
yum -y install epel-release
yum -y install nginx
systemctl enable nginx.service
systemctl start nginx.service
#安装PHP
yum install php-fpm php-redis php-devel php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-mbstring php-xml php-xmlrpc php-mbstring php-snmp php-soap
#安装Xcache编译加速器
yum -y groupinstall "Development Tools"
wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.gz
tar zxvf xcache-2.0.1.tar.gz
cd xcache-2.0.1
phpize
./configure --enable-xcache --with-php-config=/usr/bin/php-config
make && make install
cat > /etc/php.ini << EOF
\[xcache-common\]
extension = xcache.so
\[xcache.admin\]
xcache.admin.enable\_auth = Off
xcache.admin.user = ""
xcache.admin.pass = ""
\[xcache\]
xcache.shm\_scheme ="mmap"
xcache.size=60M
xcache.count =1
xcache.slots =8K
xcache.ttl=0
xcache.gc\_interval =0
xcache.var\_size=64M
xcache.var\_count =1
xcache.var\_slots =8K
xcache.var\_ttl=0
xcache.var\_maxttl=0
xcache.var\_gc\_interval =300
xcache.test =Off
xcache.readonly\_protection = On
xcache.mmap\_path ="/tmp/xcache"
xcache.coredump\_directory =""
xcache.cacher =On
xcache.stat=On
xcache.optimizer =Off
\[xcache.coverager\]
xcache.coverager =On
xcache.coveragedump\_directory =""
EOF
#修改nginx.conf为xcache建立后台
vim /etc/nginx.conf
#xcache site
server {
listen 8080;
root /usr/share/nginx/html;
location / {
index index.html index.htm index.php;
}
error\_page 404 /404.html;
location = /40x.html{
}
error\_page 500 502 503 504 /50x.html;
location = /50x.html{
}
location ~ .+\\.php($|/){
root /usr/share/nginx/html;
fastcgi\_pass 127.0.0.1:9000;
fastcgi\_index index.php;
fastcgi\_param SCRIPT\_FILENAME /usr/share/nginx/html$fastcgi\_script\_name;
include fastcgi\_params;
}
}
cp -R /root/xcache-2.0.1/admin /usr/share/nginx/html/xcache #将xcache后台程序拷贝到默认站点目录
chmod -R 755 /usr/share/nginx/html/xcache
chown -R root:root /usr/share/nginx/html/xcache
#建立主站点 兼容Thinkphp Rewrite模式
##NGINX配置文件
vim /etc/nginx.conf
server{
listen 80;
root /http/html/;
location / {
index index.html index.php;
root /http/html;
if (!-e $request\_filename){
rewrite ^(.\*)$ /index.php?s=$1 last;
}
}
location ~ \\.php {
root /http/html;
fastcgi\_pass 127.0.0.1:9000;
include fastcgi.conf;
}
}
##设置redis-Session共享
vim /etc/php-fpm.d/www.conf
修改php\_value\[session.save\_handler\] = redis
修改php\_value\[session.save\_path\] = tcp://172.16.1.32:6379/
Nginx1服务器搭建:
hostname moodleServer1
yum -y update
#配置NFSClient
yum -y install rpcbind nfs-utils
echo "172.16.1.20:/nfsshare/moodleWeb1 /http/html/ nfs defaults 0 0" >> /etc/fstab
#安装NGINX
yum -y install epel-release
yum -y install nginx
systemctl enable nginx.service
systemctl start nginx.service
#安装PHP
yum install php-fpm php-redis php-devel php-cli php-mysql php-gd php-ldap php-odbc php-pdo
php-pecl-memcache php-pear php-mbstring php-xml php-xmlrpc php-mbstring php-snmp php-soap
#安装Xcache编译加速器
yum -y groupinstall "Development Tools"
wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.gz
tar zxvf xcache-2.0.1.tar.gz
cd xcache-2.0.1
phpize
./configure --enable-xcache --with-php-config=/usr/bin/php-config
make && make install
cat > /etc/php.ini << EOF
\[xcache-common\]
extension = xcache.so
\[xcache.admin\]
xcache.admin.enable\_auth = Off
xcache.admin.user = ""
xcache.admin.pass = ""
\[xcache\]
xcache.shm\_scheme ="mmap"
xcache.size=60M
xcache.count =1
xcache.slots =8K
xcache.ttl=0
xcache.gc\_interval =0
xcache.var\_size=64M
xcache.var\_count =1
xcache.var\_slots =8K
xcache.var\_ttl=0
xcache.var\_maxttl=0
xcache.var\_gc\_interval =300
xcache.test =Off
xcache.readonly\_protection = On
xcache.mmap\_path ="/tmp/xcache"
xcache.coredump\_directory =""
xcache.cacher =On
xcache.stat=On
xcache.optimizer =Off
\[xcache.coverager\]
xcache.coverager =On
xcache.coveragedump\_directory =""
EOF
#修改nginx.conf为xcache建立后台
vim /etc/nginx.conf
#xcache site
server {
listen 8080;
root /usr/share/nginx/html;
location / {
index index.html index.htm index.php;
}
error\_page 404 /404.html;
location = /40x.html{
}
error\_page 500 502 503 504 /50x.html;
location = /50x.html{
}
location ~ .+\\.php($|/){
root /usr/share/ngin/html;
fastcgi\_pass 127.0.0.1:9000;
fastcgi\_index index.php;
fastcgi\_param SCRIPT\_FILENAME /usr/share/nginx/html$fastcgi\_script\_name;
include fastcgi\_params;
}
}
cp /root/xcache-2.0.1/admin /usr/share/nginx/html/xcache #将xcache后台程序拷贝到默认站点目录
chmod -R 755 /usr/share/nginx/html/xcache
chown -R root:root /usr/share/nginx/html/xcache
#建立主站点 兼容Thinkphp Rewrite模式
##NGINX配置文件
vim /etc/nginx.conf
server{
listen 80;
root /http/html/;
location / {
index index.html index.php;
root /http/html;
if (!-e $request\_filename){
rewrite ^(.\*)$ /index.php?s=$1 last;
}
}
location ~ \\.php {
root /http/html;
fastcgi\_pass 127.0.0.1:9000;
include fastcgi.conf;
}
}
##设置redis-Session共享
vim /etc/php-fpm.d/www.conf
修改php\_value\[session.save\_handler\] = redis
修改php\_value\[session.save\_path\] = tcp://172.16.1.32:6379/
来看看咯~