Nginx 反向代理缓存效果测试

实验环境: 3台Centos 7的虚拟机

角色 ip
代理服务器 192.168.148.101
后端服务器 192.168.148.102
测试主机 192.168.148.103

后端服务器部署 httpd 准备测试网页

[[email protected] ~]# yum -y install httpd
[[email protected] ~]# cp -v /etc/man_db.conf /var/www/html/man.html
]# ls -lh /var/www/html/man.html
-rw-r--r--. 1 root root 5.1K Jun  1 15:19 man.html
[[email protected] ~]# systemctl start httpd

测试主机安装 curl httpd-tools

[[email protected] ~]# yum -y install httpd-tools curl
# 测试网页访问,获取HTTP首部信息 Content-Length 大小 5K左右
[[email protected] ~]# curl -I http://192.168.148.102/man.html
HTTP/1.1 200 OK
Date: Sat, 01 Jun 2019 07:22:37 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Sat, 01 Jun 2019 07:19:50 GMT
ETag: "1433-58a3df4ec4829"
Accept-Ranges: bytes
Content-Length: 5171
Content-Type: text/html; charset=UTF-8

代理服务器 配置EPEL源 安装nginx,配置代理

[[email protected] ~]# yum -y install nginx
[[email protected] nginx]# vim nginx.conf
http {
    server {
        listen       80;

    location / {
         proxy_pass http://192.168.148.102/;
         proxy_http_version 1.1;
    }
}

测试主机通过代理访问

[[email protected] ~]# curl -I http://192.168.148.101/man.html
HTTP/1.1 200 OK
Server: openresty
Date: Sat, 01 Jun 2019 07:31:45 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 5171
Connection: keep-alive
Last-Modified: Sat, 01 Jun 2019 07:19:50 GMT
ETag: "1433-58a3df4ec4829"
Accept-Ranges: bytes

代理服务器开启缓存

[[email protected] nginx]# vim nginx.conf
http {
    proxy_cache_key string; ##缓存中用于“键”的内容,默认值:proxy_cache_key $scheme$proxy_host$request_uri;
    proxy_cache_valid 200 301 302 10m;
    proxy_cache_valid 404 1m;
    proxy_cache_path /var/run/nginx/proxy_cache levels=1:2:2 keys_zone=proxycache:20m inactive=120s  max_size=1g; #在硬盘上创建缓存目录

 server {
        listen       80;

    location /web {
         proxy_pass http://192.168.148.102/;
         proxy_http_version 1.1;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_cache proxycache; #调用定义的缓存
         proxy_cache_key $request_uri; #缓存访问的uri
    }
}

代理服务器和后端服务器清空网卡流量统计信息

[[email protected] ~]# modprobe -r e1000; modprobe e1000
[[email protected] ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.148.101  netmask 255.255.255.0  broadcast 192.168.148.255
        inet6 fe80::20c:29ff:febd:3f8b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:bd:3f:8b  txqueuelen 1000  (Ethernet)
        RX packets 39  bytes 3198 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 3388 (3.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[[email protected] ~]# modprobe -r e1000; modprobe e1000
[[email protected] ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.148.102  netmask 255.255.255.0  broadcast 192.168.148.255
        inet6 fe80::20c:29ff:fe35:8bbe  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:35:8b:be  txqueuelen 1000  (Ethernet)
        RX packets 23  bytes 1886 (1.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1940 (1.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

缓存测试

# 测试主机测试网页访问
[[email protected] ~]# curl http://192.168.148.101/man.html

# 代理服务器上确认缓存生成结果
[[email protected] ~]# tree /var/run/nginx/proxy_cache/
/var/run/nginx/proxy_cache/
└── 3
    └── 47
        └── 3c
            └── 05d13bbd1e55c50b1408f46dce73c473

3 directories, 1 file

# 通过ab工具测试并发200个请求 总请求10000
[[email protected] ~]# ab -n10000 -c200  http://192.168.148.101/man.html

Document Path:          /man.html
Document Length:        5171 bytes

Concurrency Level:      200
Time taken for tests:   1.850 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      54230000 bytes #传输了54M的数据
HTML transferred:       51710000 bytes 

# 代理服务器 网卡发送流量 TX packets 57M
[[email protected] ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.148.101  netmask 255.255.255.0  broadcast 192.168.148.255
        inet6 fe80::20c:29ff:febd:3f8b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:bd:3f:8b  txqueuelen 1000  (Ethernet)
        RX packets 62132  bytes 5110333 (4.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82148  bytes 59774642 (57.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 后端服务器网卡发送流量 12KB (由于代理服务器有缓存不需要从后端服务器取数据)
[[email protected] ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.148.102  netmask 255.255.255.0  broadcast 192.168.148.255
        inet6 fe80::20c:29ff:fe35:8bbe  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:35:8b:be  txqueuelen 1000  (Ethernet)
        RX packets 81  bytes 6464 (6.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 72  bytes 12967 (12.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Nginx作为反向代理服务器开启代理缓存可以有效的降低后端服务器的压力.

原文地址:https://blog.51cto.com/1012682/2403613

时间: 2024-08-30 00:19:03

Nginx 反向代理缓存效果测试的相关文章

FastDFS + Nginx 反向代理缓存 安装与配置

FastDFS + Nginx 反向代理缓存 安装与配置 作者:斯巴达克斯 时间:March 26, 2015 分类:存储 操作系统 CentOS release 6.5 (Final) 64 nginx相关软件 nginx-1.4.7 下载地址: http://nginx.org/en/download.html#nginx清除缓存模块 ngx_cache_purge-2.1 http://labs.frickle.com/nginx_ngx_cache_purge/pcre-8.36 ftp

nginx反向代理缓存服务器的构建

Nginx反向代理缓存服务器构建 一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理:与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就

Nginx反向代理缓存服务器搭建

Nginx反向代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

nginx反向代理缓存服务器构建

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网

nginx 反向代理缓存服务器构建

代理服务可简单的分为正向代理和反向代理:   正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器

解决nginx反向代理缓存不起作用的问题

昨天尝试用nginx搭建nuget镜像服务器,镜像服务器需要两个功能:1)反向代理:2)内容缓存. 用nginx做反向代理,配置非常简单,只需在/etc/nginx/nginx.conf中添加一个包含proxy_pass的server设置: server { listen 80; listen [::]:80; server_name 镜像服务器主机名; location / { proxy_pass http://www.nuget.org; } } 而添加缓存功能,配置稍微复杂些. 首先要创

Nginx反向代理、缓存、 负载均衡、upstream以及fastcgi模块应用

Nginx反向代理,缓存, 负载均衡, upstream及fastcgi模块应用 Nginx版本为nginx-1.6.2-1.el6.ngx.x86_64.rpm可以去官网下载: http://nginx.org/packages/centos/6/x86_64/RPMS/ [[email protected] ~]# rpm -ivhnginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]# vim/var/www/html/index.ht

nginx配置、反向代理缓存、负载均衡

一.nginx基本配置nginx开启文件目录浏览功能(web上显示目录) 1location / { 2 root /data/www/file //指定实际目录绝对路径: 3 autoindex on; //开启目录浏览功能: 4 autoindex_exact_size off; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b: 5 autoindex_localtime on; //开启以服务器本地时区显示文件修改日期! 6}php-fpm配置 1 location ~

Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin