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

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

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调试模式下,看到自己设置的特定头部存在

缓存目录也生成了缓存

时间: 2024-10-09 07:28:31

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

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

目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:nginx实现缓存功能 1.环境准备:同上实验,实验结构图如下: 2.设置代理服务器的配置文件 3.测试:访问 http://172.17.11.11/ 总项目流程图,详见http://www.cnblogs.com/along21/p/7435612.html 回到顶部 实验一:实现反向代理负载均衡且

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx

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

Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65.192 Nginx-Web 在三台Server安装Nginx: # yum install -y nginx 在172.16.65.190配置Nginx反向代理+负载均衡: # vim /etc/nginx/nginx.conf user nginx; worker_processes auto;

nginx反向代理负载均衡简述

基于浏览器实现分离案例if ($http_user_agent ~ Firefox) {rewrite ^(.)$ /firefox/$1 break;}if ($http_user_agent ~ MSIE) {rewrite ^(.)$ /msie/$1 break;}if ($http_user_agent ~ Chrome) {rewrite ^(.*)$ /chrome/$1 break;} 防盗链案例:location ~* .(jpg|gif|jpeg|png)$ {valid_r

25,Nginx反向代理负载均衡

1,什么是反向代理1,代理顾名思义就是代理某人去做某事,比如律师代理,中介代理.往往你不能直接自己做的事,都需要找代理 2,为什么要用反向代理1,在没有代理服务器之前,用户访问web服务器是如下图:2,在实际业务生成环境中,比如我们访问web服务器,在用户和服务器直接往往有一台或者多台代理服务器用来转发你的访问请求,代你去访问web服务器,然后将结果返回给用户.当你只有一台web服务器的时候,这种代理看起来其实意义不大,用户直接访问web服务器不是更快?但生产中不仅仅一台web,这个时候用代理来

nginx反向代理,实现动静分离

nginx反向代理,实现动静分离 nginx反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 当客户机向站点提出请求时,请求将转到代理服务器.然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器.内容服务器再通过该通道将结果回传给代理服务器.代理服务器将检索到的信息发送给客户机. 实验

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

Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且简单

Centos 7配置nginx反向代理负载均衡集群

一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web01服务器 192.168.2.78    web02服务器 二,安装nginx软件(以下操作三台虚拟机都要进行)1,安装依赖软件包命令集合 yum -y install openssl openssl-devel pcre pcre-devel gcc 2,安装nginx软件包命令集合 mkdir

nginx反向代理负载均衡(轮询权重IPHash)

1 Nginx反向代理 1.1 实现图片回显 1.1.1 反向代理 说明:当用户发出image.jt.com/2018/1.jpg时,首先将请求发往Nginx.经过Nginx内部配置自动进行路径的切换.E:jt-upload/2018/1.jpg并且访问切换后的路径.将返回的结果再次返回给浏览器.这时浏览器可以进行正常的展现 1.1.2 Nginx介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是