nginx+keepalived+php+memcached+repcached

简介:

部署准备:                                            

VIP1      192.168.1.9

VIP2      192.168.1.10

Nginx1     192.168.1.11     nginx php keepalived memcached repcached

Nginx2     192.168.1.12     nginx php keepalived memcached repcached

 

一、部署nginx1

1.安装nginx

yum -y installpcre-devel zlib-devel openssl-devel

useradd -M -s/sbin/nologin nginx

tar xfnginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure--prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio--with-http_stub_status_module --with-http_ssl_module --with-http_flv_module--with-http_gzip_static_module && make && make install

 

启动nginx

ln -s/usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx

 

2.安装php

tar xfphp-5.3.28.tar.gz

cd php-5.3.28

./configure--prefix=/usr/local/php --with-openssl --enable-fpm --enable-sockets --enable-sysvshm  --enable-xml --with-config-file-path=/etc && make && make install

 

cp/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

 

启动php-fpm

cd /usr/local/php/

sbin/php-fpm

如果启动报错:

[root@localhostphp]# sbin/php-fpm

[01-Dec-201600:41:54] ALERT: [pool www] pm.min_spare_servers(0) must be a positive value

[01-Dec-201600:41:54] ERROR: failed to post process the configuration

排错方法:

vim /usr/local/php/etc/php-fpm.conf

把以下几项的注释去掉

pm.start_servers=20

pm.min_spare_servers=5

pm.max_spare_servers=35

 

如下为启动成功

[root@CentOS6-node1~]# netstat -antp |grep php-fpm

tcp        0     0 127.0.0.1:9000             0.0.0.0:*                   LISTEN      6337/php-fpm

3.整合nginxphp

修改nginx.conf以支持php

vim /usr/local/nginx/conf/nginx.conf

添加以下红色部分:

server {

        listen 80;

        server_name localhost;

        location / {

             root   html;

             index index.html index.html;

       location ~ \.php$ {

           fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

           fastcgi_param SCRIPT_FILENAME  /$document_root$fastcgi_script_name;

           include        fastcgi_params;

         }      

 }

 

创建php测试页

cd /usr/local/nginx/html/

vim index.php

<?php

phpinfo();

?>

 

重启nginx

killall -9 nginx

nginx

验证:

访问http://192.168.1.11/index.php,出现以下页面


wKiom1l1ncLwEk6WAAC8BPGoCe4679.png

Nginxphp整合成功

 

4.安装memcached

yum -y install gccopenssl-devel pcre-devel zlib-devel

 

tar xflibevent-2.0.15-stable.tar.gz

cd libevent-2.0.15-stable

./configure--prefix=/usr/local/libevent && make && make install

 

tar xfmemcached-1.4.5.tar.gz

cd memcached-1.4.5

./configure--prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ &&make && make install

 

vim /etc/ld.so.conf

加入红色内容:

include ld.so.conf.d/*.conf

/usr/local/libevent/lib/

 

ldconfig

/usr/local/memcached/bin/memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

选项:

       -h       #查看帮助信息

       -p       #指定memcached监听的端口号默认11211

       -l       #memcached服务器的ip地址

       -u       #memcached程序运行时使用的用户身份必须是root用户

       -m     #指定使用本机的多少物理内存存数据默认64M

       -c      #memcached服务的最大链接数

       -vvv  #显示详细信息

       -n       #chunk size 的最小空间是多少单位字节

       -f      #chunk size大小增长的倍数默认 1.25

       -d       #在后台启动

 

检测memcached是否启动:

netstat  -antp| grep :11211

tcp        0     0 0.0.0.0:11211              0.0.0.0:*                   LISTEN      97860/memcached

测试memcached 能否存取数据

yum -y installtelnet

telnet 192.168.1.11 11211

set username 0 08    

zhangsan

STORED

get username

VALUE username 0 8

zhangsan

END

quit

Connection closedby foreign host.

 

Memcached安装成功

 

5.整合phpmemcached

安装php支持memcached模块

需要安装libmemcached客户端库,php的扩展memcached模块,因为该扩展是依赖libmemcachedAPI

 

安装libmemcached客户端库

tar xflibmemcached-1.0.18.tar.gz

cd libmemcached-1.0.18

./configure-prefix=/usr/local/libmemcached -with-memcached && make && makeinstall

 

安装php的扩展memcached模块

tar xfmemcached-2.2.0.tgz

cd memcached-2.2.0

/usr/local/php/bin/phpize   //先使用phpize命令生成一个configure文件

./configure-enable-memcached -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir-with-libmemcached-dir=/usr/local/libmemcached -prefix=/usr/local/phpmemcached--disable-memcached-sasl

make &&make install

 

记录下安装成功后的提示,类似于:

Installing sharedextensions:    /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

 

cp /root/php-5.3.28/php.ini-development/etc/php.ini  //在编译安装php时指定配置文件的路径是/etc

 

增加扩展extension配置文件

vim /etc/php.ini

添加以下内容:

822 extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"

823 extension = "memcached.so"

 

重启php-fpm

killall -9 php-fpm

/usr/local/php/sbin/php-fpm

执行php –m命令查看是否加载了memcached模块

/usr/local/php/bin/php–m

 

访问http://192.168.1.11/index.php出现以下页面

wKiom1l1nm3iMyqMAAC5gH8v0vU549.png

 

 

建立测试页面:

vim /usr/local/nginx/html/memcached.php

<?php

session_start();

if(!isset($_SESSION['test'])){

$_SESSION['test']= time();

}

print$_SESSION['test'];

print"<br><br>";

print"SessionID: " . session_id();

?>

访问http://192.168.1.11/memcached.php出现以下页面

wKiom1l1nnzCNLBaAACQ_cYLz0g719.png

单台nginx+php+memcached存储session信息完成

 

二、部署nginx2

Nginx2Nginx1做相同操作

最后访问http://192.168.1.12/memcached.php出现以下页面

wKioL1l1nojT61b6AACHg4Nku2Y054.png

三、分别在nginx1nginx2上安装keepalived实现高可用

在两台nginx上做以下相同操作:

yum -y installkernel-devel openssl-devel

tar xfkeepalived-1.2.13.tar.gz

cd keepalived-1.2.13

./configure--prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-504.el6.x86_64/ &&make && make install

chkconfig --addkeepalived

chkconfig keepalived on

chkconfig --list keepalived

 

修改nginx1上的keepalived配置文件

vim /etc/keepalived/keepalived.conf

 

!Configuration File for keepalived

 

global_defs{

   notification_email {

        crushlinux@163.com

}

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

 

vrrp_instanceVI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 50

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123

    }

    virtual_ipaddress {

        192.168.1.9

    }

}

 

vrrp_instanceVI_2 {

    state MASTER

    interface eth0

    virtual_router_id 52

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123

}

    virtual_ipaddress {

        192.168.1.10

    }

}

 

修改nginx2上的keepalived配置文件

vim /etc/keepalived/keepalived.conf

 

!Configuration File for keepalived

 

global_defs{

   notification_email {

        crushlinux@163.com

}

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

 

vrrp_instanceVI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123

    }

    virtual_ipaddress {

        192.168.1.9

    }

}

 

vrrp_instanceVI_2 {

    state BACKUP

    interface eth0

    virtual_router_id 52

    priority 50

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123

    }

    virtual_ipaddress {

        192.168.1.10

    }

}

 

分别启动nginx1nginx2keepalived服务

service keepalived start

 

nginx1VIP地址为192.168.1.10

nginx2VIP地址为192.168.1.9

 本文转自lyndon博客51CTO博客,原文链接http://blog.51cto.com/lyndon/1950470如需转载请自行联系原作者


迟到的栋子

相关文章
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
538 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
9月前
|
应用服务中间件 Linux 网络安全
使用Nginx免费版与Keepalived实现高可用性High Availablity方案
本文介绍了如何使用Nginx免费版与Keepalived实现高可用性(HA)方案,涵盖环境搭建、Keepalived安装配置、版本升级及主从模式设置。通过虚拟机测试,结合CentOS与宝塔,详细说明VIP配置与服务启动流程,助你构建稳定可靠的Web高可用架构。
|
11月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
446 11
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
488 0
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
运维 负载均衡 监控
Nginx加Keepalived实现高可用
使用Nginx和Keepalived来实现高可用性的方案,对于确保关键服务的稳定性和可靠性来说是非常有效的。此配置涉及多个步骤,包括各个服务的安装、设置及测试,目标是在主服务器故障时能无缝切换,以确保服务的持续可用。正确的配置和充分的测试是实现高可用性的保证,这也要求管理员对这些工具和它们背后的原理有深入的了解。
681 1
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
353 1
|
应用服务中间件 Linux PHP
Linux搭建tengine2.0<Nginx>+php7环境
本文介绍了在Linux系统上搭建Tengine 2.0(一个Nginx的增强版本)和PHP 7环境的详细步骤,包括创建安装目录、下载源码包及依赖库、编译安装Nginx、配置Nginx、安装PHP及其依赖、设置PHP-FPM、配置环境变量、安装Git和Composer,以及服务管理和日志查看等。
325 0
|
Ubuntu 应用服务中间件 Linux
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
220 0
下一篇
开通oss服务