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

wKiom1dJmrHTEzLjAABw6283y4Y763.png

wKioL1dJm6rged9MAAB5Uw_tgGE142.png


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

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

wKioL1dJm_uBQjbcAACIFYnsarY075.png


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

wKiom1dJmwOhAeZ2AAA5JvcQ8Pk287.png


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 phpwind@'172.18.11.%' IDENTIFIED BY 'phpwind';

> FLUSH PRIVILEGES;

在DR上编辑nginx配置文件:

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

wKioL1dJnFOSd6xzAABQIS4th_o942.png

wKiom1dJm1qDSwCWAABvxf4GimI193.png


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

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

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

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

wKiom1dJm5eBHm61AAA8div67CA297.png

wKioL1dJnJGiuMnIAABCvAqfJVY902.png


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

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

wKiom1dJm7WRu7jjAABBYDgGp0c091.png

wKioL1dJnK7wb8TCAABBI36nOaY649.png


测试phpwind

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


点击接受

wKiom1dJnA6jHHHuAALaml6SQNU908.png

wKioL1dJnQijzo5yAAJpuW2rXeY783.png

wKioL1dJnQmSCRevAAFB23iZOBk780.png


点击下一步

wKiom1dJnBGCdWJjAAE_8ovlaAo090.png


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

wKiom1dJnBLQlrW0AAI8ItOonIo080.png

wKioL1dJnQziU2KLAAIA7z2GO6E446.png

wKiom1dJnBTyb9V6AAI9MGPuAWA576.png

wKioL1dJnQ7BNqqDAALnN43UIYM829.png


此时,服务搭建完毕。

总结:

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

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











本文转自 crystaleone 51CTO博客,原文链接:http://blog.51cto.com/linsj/1784129,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
小程序 安全 关系型数据库
专业打造一款圈子源码软件系统 / 后端 PHP 搭建部署一样实现利益化
本教程详解基于PHP后端与Uni-app的小程序开发全流程,涵盖技术选型、环境搭建、源码导入、接口对接及功能实现。采用Laravel/Symfony框架,结合MySQL/PostgreSQL数据库,使用WebSocket实现实时通信,并集成IM SDK实现音视频聊天。前端使用Uni-app开发,支持跨平台运行。教程包含完整部署流程与安全优化方案,助力快速搭建高性能、安全稳定的小程序系统。
422 5
|
9月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
505 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
前端开发 算法 NoSQL
前端uin后端php社交软件源码,快速构建属于你的交友平台
这是一款功能全面的社交软件解决方案,覆盖多种场景需求。支持即时通讯(一对一聊天、群聊、文件传输、语音/视频通话)、内容动态(发布、点赞、评论)以及红包模块(接入支付宝、微信等第三方支付)。系统采用前后端分离架构,前端基于 UniApp,后端使用 PHP 框架(如 Laravel/Symfony),配合 MySQL/Redis 和自建 Socket 服务实现高效实时通信。提供用户认证(JWT 集成)、智能匹配算法等功能,助力快速上线,显著节约开发成本。
299 1
前端uin后端php社交软件源码,快速构建属于你的交友平台
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
563 61
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
缓存 负载均衡 应用服务中间件
Nginx如何反向代理后端服务?
【7月更文挑战第7天】
510 1
Nginx如何反向代理后端服务?
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
261 2
|
前端开发 JavaScript 小程序
前端uni开发后端用PHP的圈子系统该 如何做源码?
圈子系统系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP
|
负载均衡 Java 应用服务中间件
谁说后端不需要懂的-Nginx知识点
先赞后看,南哥助你Java进阶一大半他叫,一个俄罗斯程序员。就是他,着手开发了大名鼎鼎处理高并发、高负载网络请求的Nginx,同时他在2004年把Nginx作为开源软件发布。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
122 0
谁说后端不需要懂的-Nginx知识点
|
负载均衡 算法 应用服务中间件
揭秘!nginx的神秘力量——如何单枪匹马驾驭Linux中的流量洪流与后端军团?
【8月更文挑战第20天】在Linux环境下,Nginx是一款高效HTTP与反向代理服务器,还具备负载均衡功能。本文采用问答形式解析Nginx的反向代理机制:接收并转发客户端请求至后端服务器,增强安全性和性能。示例配置展示了如何设置上游服务器与代理传递规则。同时介绍了Nginx负载均衡原理及配置,利用upstream模块与不同调度算法(如轮询、最少连接、IP哈希)分发请求,提升系统可靠性和处理能力。
141 2