总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html

实验一:实现反向代理负载均衡且动静分离

1、环境准备:

机器名称

IP配置

服务角色

备注

nginx

VIP:172.17.11.11

反向代理服务器

开启代理功能

设置监控,调度

rs01

RIP:172.17.22.22

后端服务器

stasic-srv 组

rs02

RIP:172.17.1.7

后端服务器

stasic-srv 组

rs01

RIP:172.17.77.77

后端服务器

defautl-srv 组

rs02

RIP:172.17.252.111

后端服务器

defautl-srv 组

2、下载编译安装tengine

原因:nginx自带的监控模式虽然能用,但是很不易理解;tengine的监控模式易设简单,且是在nginx的二次开发,和nginx差不多

(1)官网下载:http://tengine.taobao.org 还支持中文

解包 tar tengine-2.1.1.tar.gz

cd tengine-2.1.1

(2)下载所依赖的包

yum -y groupinstall "development tools"

yum install openssl-devel -y

yum install pcre-devel -y

(3)编译安装

./configure --prefix=/usr/local/tengine 指定安装后的目录

make && make install

3、设置代理服务器的配置文件

cd /usr/local/tengine/conf

cp nginx.conf /usr/local/tengine/conf/ 若机器上本有nginx,可以把配置文件直接拷过来,没有也可自己设置

vim nginx.conf 全局段和 http段我就不设置了,默认就好

① 定义upstream:后端server 群

upstream lnmp-srv1 {
server 172.17.22.22:80;
server 172.17.1.7:80;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
upstream lnmp-srv2 {
server 172.17.77.77:80;
server 172.17.252.111:80;
server 172.17.1.7:80;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}

② 在server段的location 段中设置动静分离

server {
  listen 80;
  location /stats { #设置监听页面
  check_status;
}    location ~* .jpg|.png|.gif|.jpeg$ {
     proxy_pass http://static-srv;
  }
   location ~* .css|.js|.html|.xml$ {
     proxy_pass http://static-srv;
  }
  location / {
    proxy_pass http://default-srv;
  }

4、启动tengine服务

① 去编译安装的路径开启服务

cd /usr/local/tengine/sbin/

./nginx 启动tengine

./nginx -s stop 停止

② 也可以添加到开机自启

cd /usr/lib/systemd/system/nginx.service  添加修改,Centos 7

cd cd /etc/init.d/   Centos 6

5、开启后端的web服务

systemctl start nginx

systemctl start php-fpm

systemctl start mariadb

6、测试

(1)测试反向代理是否成功 http://172.17.11.11/ web页面访问成功

(2)测试状态页面 http://172.17.11.11/stats

(3)测试动静分离

把静态页面的后端server组的服务宕机,发现没有静态的东西了

实验二:nginx实现缓存功能

需求分析:为什么需要缓存?

  缓存的最根本的目的是为了提高网站性能, 减轻频繁访问数据 , 而给数据库带来的压力 。 合理的缓存 , 还会减轻程序运算时 , 对CPU 带来的压力。在计算机现代结构中, 操作内存中的数据比操作存放在硬盘上的数据是要快N 个数量级的 , 操作简单的文本结构的数据 , 比操作数据库中的数据快N 个数量级 。

  例如: 每次用户访问网站, 都必须从数据库读取网站的标题, 每读一次需要15 毫秒的时间, 如果有100 个用户( 先不考虑同一时间访问), 每小时访问10 次, 那么就需要读取数据库1000 次, 需要时间15000 毫秒. 如果把页面直接变成页面缓存,则每次访问就不需要去数据库读取,大大提升了网站性能。

原理:

缓存数据分为两部分( 索引, 数据):
① 存储数据的索引 ,存放在内存中;
② 存储缓存数据,存放在磁盘空间中;
  分析:如建立a.jpg的缓存,把它的uri作为索引放在内存中,实际图片数据放在磁盘空间中;缓存会有很多,所以索引存放的目录需分层级,把uri做hash运算,换算成16位进制,取最后一个数作为一级目录的名称[0-f];二级目录可以用随机最后第2,3位数作为名称[00-ff];三级目录以此类推...

1、环境准备:同上实验,实验结构图如下:

2、设置代理服务器的配置文件

① 先在http段定义缓存

proxy_cache_path /data/cache levels=1:2:2 keys_zone=proxycache:10m inactive=120s max_size=1g

分析:定义一个缓存,路径在/data/cache 下;三级目录,第一级[0-f]随机数字,第二、三级[00-ff]随机数字;定义缓存的名字proxycache,缓存大小10M;存活时间120s;在磁盘占用空间最大1G。

② 再在server段引用缓存

proxy_cache proxycache; #引用上面定义上的缓存空间,同一缓存空间可以在几个地方使

proxy_cache_key $request_uri; #对uri做hash运算
proxy_cache_valid 200 302 301 1h; #200、302、301响应码的响应内容的缓存1小时
proxy_cache_valid any 1m; #其它缓存1分
add_header Along-Cache "$upstream_cache_status form $server_addr"; #给请求响应增加一个头部信息,表示从服务器上返回的cache

3、测试:访问 http://172.17.11.11/

F12调试模式下,看到自己设置的特定头部存在

缓存目录也生成了缓存

项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现的更多相关文章

  1. 项目实战2.1—nginx 反向代理负载均衡、动静分离和缓存的实现

    总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备 ...

  2. 项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现

    目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:ng ...

  3. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  4. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  5. 十.nginx反向代理负载均衡服务实践部署

    期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...

  6. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...

  7. Centos7.4 Nginx反向代理+负载均衡配置

    Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...

  8. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  9. Centos 7.6配置nginx反向代理负载均衡集群

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...

随机推荐

  1. MSSQL查询数据分页

    这几天刚好碰到数据的分页查询,觉得不错,Mark一下,方法有两种,都是使用select top,效率如何就不在这讨论 方法1:利用select top配合not in(或者not exists),查询 ...

  2. SQL SERVER 数据库级联删除

    --SQL SERVER 2008R2 级联删除:主子表设置外键关联,当主表数据删除的时候会自动删除子表中对应的数据 --创建主表 create table test_main( ID ,) PRIM ...

  3. python初步(附学习思维导图)

    python,原意为蟒蛇,至于它的发展史,度娘应该比我讲述的更为专业/偷笑.这里我们要梳理的是整个学习的脉络,当然,今后的随笔也会从基础部分说起,希望能给进门python的小伙伴一些建议. 一.环境的 ...

  4. Python和SQL 2017的强大功能

    Python和SQL Server 2017的强大功能   原文来自:https://www.red-gate.com/simple-talk/sql/sql-development/power-py ...

  5. 模块:time,random,os,sys

    时间模块 import time # print(time.time()) #时间戳 # print(time.strftime('%Y-%m-%d %X')) #格式化字符 # print(time ...

  6. 如何高效的编写Verlog HDL——菜鸟版

    工欲善其事.必先利其器!要想高效的编写verilog没有一个好的编辑器可不行,所以我这里推荐两款十分好用的编辑器Notepad++和Gvim,这两款编辑器由于其强大的添加插件的功能,所以深受代码工作者 ...

  7. 项目总结一:响应式之CSS3 媒体查询

    1.<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scala ...

  8. [Web开发(1)] MyEclipse/Eclipse 使用Tomcat部署Web/Maven项目经典错误

    1.Tomcat启动报错:server tomcat start within 45 seconds 问题原因:由于eclipse默认Tomcat设置是启动时间为45s,所以在45s内没有启动成功就会 ...

  9. 微软Tech Summit 2017,微软携手Unity打造MR之夜

    2017年10月31日至11月3日,微软将在北京举办Tech Summit 2017技术暨生态大会.今年的大会不仅有大咖级人物带来的十二大主题.百余场课程,而且还会迎来最特别的一位嘉宾--微软公司首席 ...

  10. [Bayesian] “我是bayesian我怕谁”系列 - Exact Inferences

    要整理这部分内容,一开始我是拒绝的.欣赏贝叶斯的人本就不多,这部分过后恐怕就要成为“从入门到放弃”系列. 但,这部分是基础,不管是Professor Daphne Koller,还是统计学习经典,都有 ...