nginx高可用,构建LNAMMP架构

简介:

  keepalived实现nginx高可用:

  Directory1:

   IP:172.16.72.5

  Directory2:

   IP:172.16.72.4

  RS1:

   IP:172.16.72.6

  RS2:

   IP:172.16.72.7

  Virtual IP:172.16.72.1

  ①安装nginx,keepalived

  yum -y install nginx keepalived

  ②校准时间,设置ntpd服务,时间服务器

  ③配置Directory1的nginx

  配置文件/etc/nginx/nginx.conf

  c04062c735ddd351f18f7f77eef6c5ab.jpg-wh_

  upstream设置后端服务器的相关信息

  在servver中设置Directory反代

    proxy_pass

  Directory2的nginx配置相同;

  配置keepalived:

  1176656302d18da35df8518949267991.jpg-wh_

  keepalived脚本接口,用于判断nginx服务是否开启

  若nginx服务已关闭,则返回exit 1,权重-10,这样在抢占模式下BACKUP就会转为MASTER;

  

  f5a2f9fc998b740d325b0ba894d43295.jpg-wh_

  

  Directory2的配置:

  nginx配置

  d00c3d947e5e2cce7a8264ca97865271.jpg-wh_

  keepalived配置:

  6c1d98a270b86ccb3c93264b8add088c.jpg-wh_

  3e568cbc197f4c75e3ca5fef1a8b43ee.jpg-wh_

  

  nginx高可用验证:

  MASTER为Directory1:

   7b6bae986998a1a024bee7e388c1fb08.jpg-wh_

  浏览器访问:

  d22c3e771228ac6f95cc3579852c29e6.jpg-wh_

  12e6f3b020368c2bb28c34f55b1f707f.jpg-wh_


  关闭Directory1的nginx服务

  [root@localhost 桌面]# nginx -s stop

  MASTER转到Directory2上:

  

  d958781a7c36a5821f17e7416682c962.jpg-wh_

  访问浏览器:

  13c0fc03421055479692ebd3222d347e.jpg-wh_

  3c1b39e65e4fb0a55e69ebae4d31287e.jpg-wh_



  构建LNAMMP架构:

    1) Nginx既是前端调度器,又是缓存服务器;

    2) 将php的session缓存于memcached中;

    3) 在Apache和php上部署Discuz论坛程序;

    4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问;

    

   ①配置Nginx前端调度器,缓存服务器:

    如上所述;

    

   ②后端真实服务器上配置Discuz程序

   将Discuz程序导入,使用unzip解压缩;

   配置Mariadb

   如:

   514be989a91df7fea79a9dd094f6504b.jpg-wh_


   解压后产生文件有upload,readme,utility;

   安装php-fpm;

   

   ③配置后端服务器的httpd

   两个Real Server的配置均相同,配置密钥的方式在这里不说了

   e9ac973f6e3b2f46343022b29a4ebb4e.jpg-wh_

    #yum install -y mod_ssl

    安装httpd下的https插件


   ④前端nginx的rewrite与反代

    在nginx高可用的基础上进行的修改

   c2cd1ba22ea0a1bcf184bb4dc7a8b3bd.jpg-wh_

   rewrite重写为https模式;

  

   08b742ff0e02522133d683970fe4df2a.jpg-wh_

   当访问80端口后,重写为https的域名,由443端口获取,再将其反代到wjq这个服务器组中;

   

   访问结果:

   直接访问https://www.wujunqi1.com/upload/install/index.php

   11e5a0048ccb72781885ebf7196da0da.jpg-wh_

   访问:http://www.wujunqi1.com/upload/install/index.php便会转到https服务


   断掉Directory1的nginx服务:

   #nginx -s stop

   访问第二台Directory2,结果相同

   0509df9f60bd84717cc20ece6e051655.jpg-wh_

   

  设置memcached缓存服务器:

    缓存服务器IP为172.16.72.5即第一台MASTER主机

    安装memcached

    #yum install -y memcached

    启动memcached

    #systemctl start memcached.service

    并在后端RS的php上设置会话缓存,主要配置/etc/php-fpm.d/www.conf(安装的是php-fpm)

    若安装的是php,则修改/etc/php.ini配置文件;

    d3794c9835c56861c11260e996c6280c.jpg-wh_

    需要注意的是,在配置php会话缓存时,需要与memcached相对应的配置项,如php-pecl-memcache   或者php-pecl-memcached;

    使用如下代码,去验证php缓存是否成功:

    923c22b1bb2f831a9462e477d178a2d3.jpg-wh_

    修改缓存服务器IP地址即可;

    该代码的主要意义在于,连接远程缓存服务器,并将hellokey作为键值,Hello World作为缓存数   据保存在缓存服务器中,保存时间600秒;

    访问nginx的虚拟IP,172.16.72.1,反代至后端的172.16.72.6主机得出缓存成功的结果;

    e364ee23b36648a2df57c41f88911f0d.jpg-wh_

    

    本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1979122

  




相关文章
|
2月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
2月前
|
数据采集 运维 监控
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
|
2月前
|
人工智能 监控 测试技术
告别只会写提示词:构建生产级LLM系统的完整架构图​
本文系统梳理了从提示词到生产级LLM产品的八大核心能力:提示词工程、上下文工程、微调、RAG、智能体开发、部署、优化与可观测性,助你构建可落地、可迭代的AI产品体系。
493 51
|
1月前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
2月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
621 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
2月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
2月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
2月前
|
传感器 人工智能 算法
分层架构解耦——如何构建不依赖硬件的具身智能系统
硬件与软件的彻底解耦,并通过模块化、分层的架构进行重构,是突破这一瓶颈、构建通用型具身智能系统的核心基石。这种架构将具身智能系统解耦为三个核心层级:HAL、感知决策层和任务执行层。这一模式使得企业能够利用预置的技能库和低代码工具快速配置新任务,在不更换昂贵硬件的前提下,实现从清洁机器人到物流机器人的快速功能切换。本文将通过对HAL技术原理、VLA大模型和行为树等核心技术的深度剖析,并结合Google RT-X、RobotecAI RAI和NVIDIA Isaac Sim等主流框架的案例,论证这一新范式的可行性与巨大潜力,探讨硬件解耦如何将机器人从一个“工具”升级为“软件定义”的“多面手”,从而
477 3
|
2月前
|
SQL 弹性计算 关系型数据库
如何用读写分离构建高效稳定的数据库架构?
在少写多读业务场景中,主实例读请求压力大,影响性能。通过创建只读实例并使用数据库代理实现读写分离,可有效降低主实例负载,提升系统性能与可用性。本文详解配置步骤,助你构建高效稳定的数据库架构。
|
负载均衡 容灾 应用服务中间件
使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群
最近同学出去面试经常会被问到一个问题。 面试官:你说你们公司使用nginx反向代理tornado,部署了多少多少台机器,好像很牛逼的样子,但是我问你,如果主机也就是部署了nginx那台机器并发过大导致宕机了怎么办? 答曰:不考虑带宽峰值的话,比较新的 CPU 跑 nginx 单核每秒能接近 2 万请求,而且nginx如果纯做 HTTP 转发的话,Nginx 的性能高到恐怖,会挂掉很不科学。。。。 面试官:好吧,算你会忽悠,那如果插头被扫地大妈踢掉了怎么办,因为没电导致服务器宕机 答曰:阿里云机房会断电。。。你特么在逗我吧。。
使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群