[高可用web服务器集群]Nginx服务器

[高可用web服务器集群]Nginx服务器 - 1

所处层

服务器类型

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集群提供数据库写入服务,使用mariadbmaster/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/

One thought on “[高可用web服务器集群]Nginx服务器”

Leave a Reply

Your email address will not be published. Required fields are marked *