nginx反代后端动静分离 php会话保持使用memcached

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx反代后端动静分离 php会话保持使用memcached相关的知识,希望对你有一定的参考价值。

nginx调度器:

DR:172.18.11.111

]# yum -y install nginx

]# systemctl start nginx

php主机:部署phpwind程序、安装memcached

RS1:172.18.11.112

RS2:172.18.11.113

]# yum -y install php

]# systemctl start php

]# yum -y install memcached

]# yum -y install libmemcached

]# yum -y install php-pecl-memcached

配置php将会话保存至memcached中,确保如下两个参数的值:

]# vim /etc/php.ini

技术分享

技术分享


测试新建php页面setsess.php,为客户端设置启用session:

]# vim /var/www/html/showsess.php

技术分享


]# vim /var/www/html/setsess.php

技术分享


web主机:

RS3:172.18.11.11

RS4:172.18.11.12

]# yum -y install httpd

]# systemctl start httpd

在php主机中使用nfs共享存储;

在172.18.11.112上提供共享目录:

]# yum -y install nfs-utils

]# systemctl start nfs

]# vim /etc/exports

/var/www/html 172.18.11.0/24(rw,no_root_squash)

]# exportfs -r

把phpwind解压在172.18.11.112

]# unzip /var/www/html/phpwind_UTF8_8.7.zip

]# cd /var/www/html/upload

]# chmod -R o+w attachment data html

]# mv install.php install.php.bak


在172.18.11.113、172.18.11.11/172.18.11.12上分别进行挂载共享目录:

]# showmount -e 172.18.11.112 查看可挂载共享文件

]# mount -t nfs 172.18.11.112:/var/www/html /var/www/html/

]# yum -y install mariadb-server

]# systemctl start mariadb

]# mysql

> CREATE DATABASE phpwind;

> GRANT ALL ON phpwind.* TO [email protected]‘172.18.11.%‘ IDENTIFIED BY ‘phpwind‘;

> FLUSH PRIVILEGES;

在DR上编辑nginx配置文件:

]# vim /etc/nginx/conf.d/default.conf

技术分享

技术分享


分别在RS3、4上提供web测试页;并指定根路径在/var/www/html

分别在后端各服务器上启动相应的服务;

浏览器输入:http://172.18.11.111/setsess.php

刷新多次:分别显示为:会话ID交替保持

技术分享

技术分享


浏览器输入:http://172.18.11.111/showsess.php

刷新多次:会话ID不断变化

技术分享

技术分享


测试phpwind

在浏览器输入:在浏览器输入:http://172.18.11.111/upload/index.php


点击接受

技术分享

技术分享

技术分享


点击下一步

技术分享


填入数据库相关信息,创始人信息随意填写

技术分享

技术分享

技术分享

技术分享


此时,服务搭建完毕。

总结:

前端为一台nginx调度器,负责动静分离调度到后端不同主机,后端两台web服务器负责响应静态请求,两台php服务器负责响应动态请求,并且php会话保存在memcached中,注意配置upstream server时location定义的访问的uri,而且要在http配置段定义,在server配置段调用,相关配置指令使用的位置不能写错地方,后端主机上各服务启动配置好,在数据库重建存放phpwind的相关信息,php主机共享存储使用nfs,创建共享目录并导出,在另外所有后端服务器挂载这个共享目录,否则phpwind的静态图片会显示不了,以及php使用memcached都要配置好,配置文件设置搞清楚后,就部署完成。

注意:在整个服务搭建过程中,要每做一步配置即时验证服务配置是否成功,从单机测试,到跨主机测试,分步骤测试,不要等所有服务都配置好了再测试,那样如果出现问题,不利于故障判断与排除。


以上是关于nginx反代后端动静分离 php会话保持使用memcached的主要内容,如果未能解决你的问题,请参考以下文章

nginx反代varnish缓存服务器实现后端amp动静分离架构

CentOS 7.1.1503 varnish动静分离反代用户请求

nginx反代

基于LNMP实现动静分离,PHP+Memcached实现会话保持

nginx-fastcgi 反向代理

LNMMP架构搭建wp个人博客实现动静态内容分离