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,如需转载请自行联系原作者

相关文章
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
37 0
|
2月前
|
存储 缓存 Java
Openresty(lua+nginx)-Guava-Redis做多级缓存
Openresty(lua+nginx)-Guava-Redis做多级缓存
24 1
|
3月前
|
供应链 Java
云HIS技术架构:Angular+Nginx+Java+Spring,SpringBoot
标准数据维护 用户信息:维护用户的基本信息,所在科室以及各个系统所具体的权限。 科室信息:维护医院的科室信息。 数据字典:标准字典信息的维护。 药品/诊疗目录维护:维护药品和诊疗目录的基本信息。
34 2
|
2月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
64 0
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
23 1
|
7天前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
20天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
21天前
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
27天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
1月前
|
弹性计算 应用服务中间件 Linux
阿里云ECS服务器上从零开始搭建nginx服务器
阿里云ECS服务器上从零开始搭建nginx服务器