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

简介:

1.前端nginx做调度器及反代服务器,将用户的请求调度至后端的两台varnish,缓存调度算法使用一致性hash算法保证缓存命中率;

2.两台varnish反向代理用户请求至三个(组)后端主机,分别为存储静态资源(htm,html,css,js),应用程序服务器(可以部署wordpress或Discuz!),图片统一保存至图片服务器;

3.用户登录后,可以通过wordpress发布新的博文,并且可以上传图片;

4.如果后端主机全部宕机,varnish可以使用过期缓存响应客户端;

             

实验规划:

director1:    172.16.1.4 nginx+keepalived 主

director2:    172.16.1.2 nginx+keepalived 备

varnish1:     172.16.1.5

varnish2:     172.16.1.6

static server:  172.16.1.10

php server:   172.16.1.3

 

拓扑图

blob.png

一、配置两台nginx调度器主机

 

director1的keepalived配置

11111.PNG  

director2的keepalived配置

22222.PNG

两台nginx的配置

 

在nginx.conf配置文件中的http段内添加upstream内容,将后端两台varnish服务器加入到该upstream中,同时做一致性hash算法保证缓存命中率。

后端健康状态检查设置:max_fails=1设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。

33333.PNG 

 

二、两台varnish主机的配置

 

更改varnish的监听端口为80

[root@varnish1 ~]# vim /etc/varnish/varnish.params

VARNISH_LISTEN_PORT=80

 

varnish配置文件内容

[root@varnish1 ~]# vim /etc/varnish/default.vcl

4444.PNG

5555.PNG


编译使配置生效

 

[root@varnish1 ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

200       

-----------------------------

Varnish Cache CLI 1.0

-----------------------------

Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-4.0.5 revision 07eff4c29

 

Type 'help' for command list.

Type 'quit' to close CLI session.

 

vcl.list

200       

available       0 boot

active          0 myconf3

 

varnish> vcl.load conf1 default.vcl

200       

VCL compiled.

 

vcl.use conf1

200       

VCL 'conf1' now active

 

vcl.list

200       

available       0 boot

available       0 myconf3

active          0 conf1

 

三、后端wordpress主机配置

 

wordpress的主要如下步骤,详细步骤不做赘述

 

下载安装配置wordpress

cp wp-config-sample.php wp-config.php

 

数据库配置

MariaDB [(none)]> create database wordpress;

MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'172.16.%.%' identified by '123456';

MariaDB [(none)]> flush privileges;

 

 

在动态主机的/var/www/html/下创建health.php用于动态健康状态检查

<h1>DynamicServer is Health.</h1>

 

在静态主机的/var/www/html/下创建health.html用于静态健康状态检查

<h1>StaticServer is Health.</h1>

 

四、测试

对后端主机健康状态检查

 

[root@varnish1 ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

200       

-----------------------------

Varnish Cache CLI 1.0

-----------------------------

Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-4.0.5 revision 07eff4c29

 

Type 'help' for command list.

Type 'quit' to close CLI session.

 

backend.list

200       

Backend name              Refs   Admin      Probe

default(127.0.0.1,,8080)       2      probe      Healthy (no probe)

dynamic(172.16.1.10,,80)       1      probe      Healthy 3/3

static(172.16.1.3,,80)        1      probe      Healthy 3/3

 

 

客户端登陆keepalived生成的虚拟ip地址172.16.1.100

 

第一次查看静态页面,未缓存X-Cache为miss

blob.png

 

刷新一下,缓存服务器就缓存了X-Cache为HIT

blob.png

 

查看动态页面

blob.png

登陆wordpress可以看到刚才正常上传图片的博客

blob.png



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

相关文章
|
3月前
|
弹性计算 监控 负载均衡
|
5天前
|
弹性计算 负载均衡 Java
【上云基础系列 02-01】通过SLB+1台ECS+ESS弹性伸缩,搭建一个精简版的上云标准弹性架构(含方案及教程)
通常,构建一个弹性架构(即使是一个最基础的入门版),至少需要2台ECS。但是,很多小微企业刚开始上云的时候,为了节省成本不愿意购买更多的服务器。通过 “ALB+ESS弹性伸缩+1台ECS+RDS”方案,在保障低成本的同时,也不牺牲业务架构的弹性设计,更避免了很多人因为节省成本选择了单体架构后频繁改造架构的困局。 方案中的几个设计非常值得小微企业借鉴:(1)通过ALB/RDS的按量付费,节省了初期流量不大时的费用;(2)通过ESS弹性伸缩,不需要提前购买服务器资源,但是当业务增长或减少时却保持了资源弹性自动扩缩容。
|
5天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
3月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
220 61
|
1月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
141 10
|
1月前
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
2月前
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
69 13
|
3月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
151 7
|
3月前
|
存储 缓存 弹性计算
Codota的服务器存储架构
Codota的服务器存储架构
51 5
|
3月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
165 1