Nginx 代理和缓存

blob.png

一 实验环境

Nginx 版本:nginx-1.8.1

Nginx代理服务器WAN:192.168.1.5 LAN:172.16.2.1

Web1:172.16.2.2

Web2:172.16.2.3

1.  配置好IPDNS 、网关,确保使用远程连接工具能够连接服务器

2.       配置防火墙,iptables –F 清理防火墙规则或者关闭iptables

3.       关闭SELINUX, setenforce 0  #立即生效(实际是临时生效)

二 Nginx Proxy 反向代理

Proxy 模块:代理上级服务器

Upstream 模块:自定义一个服务器组, 可以结合代理模块从而提供负载均衡的功能

 

1.Upstream的常用参数介绍

ip_hash 类似于lvssh算法,将同一IP的请求定向至同一主机

weight: 默认为1.weight越大,负载的权重就越大

max_failsupstream允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout:多久超时算失败

down:将某个主机标记下线

backup:将某个主机设置为备份模式, 只要不是所有主机都宕机, 它就不会上线

 

2.Nginx 代理服务器上配置,编辑配置文件/etc/nginx/nginx.conf

 

在主配置文件的http段使用upstream定义一个集群, testserver是集群的名称。

http段添加

   upstream testserver {

       server 172.16.2.2 weight=1;

       server 172.16.2.3 weight=2;

        }

Server 段添加

             location / {

          proxy_pass http://testserver;

        }

 

                  service nginx reload

         blob.png

 

       blob.png

提示:后端是LNMP平台的话可以直接响应动态请求,例如部署WordPress……

 

 

 

三 Nginx_Cache 缓存模块

 

缓存能够为我们减轻服务器的负担和加快响应速度, Nginx_proxy模块能够支持缓存功能, 我们这里使用我们这里缓存静态资源

 

1.Linux上安装ab来压力测试

yum -y install httpd-tools

ab -n 1000 -c 200 http://192.168.1.5/index.html         

blob.png

 

2.配置缓存服务器

vi /etc/nginx/nginx.conf

http段添加:

 

proxy_cache_path /cache levels=1:1 keys_zone=testcache:64m; #内存缓存空间大小64M

 

#Location段配置

proxy_cache testcache;    #使用testcache进行缓存

proxy_cache_valid 200 1d;   #响应码为200的缓存1

proxy_cache_valid 500 501 502 503 1m;   #响应码为500…的缓存1分钟

proxy_cache_use_stale error ;   #如果请求源主机的时候出问题, 仍然使用缓存

 

service nginx reload #重新载入配置

mkdir /cache #创建缓存存放文件夹

chown nginx:nginx /cache  #修改属主和属组为nginx

3.测试查看缓存效果

blob.png

 

从测试结果可以看出缓存对于静态资源响应的提升是十分显著的.

原创文章,作者:liangkai,如若转载,请注明出处:http://www.178linux.com/61418

(1)
liangkailiangkai
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • 磁盘管理

    linux的哲学思想:一切皆文件; 设备类型: 块(block):随机访问,交换数据单位是“块”; 字符(character):线性访问,数据交换单位是“字符”; 设备文件:FHS /dev     设备文件:关联至设备驱动程序;设备的访问入口;       &nbsp…

    Linux干货 2016-08-30
  • 对文件目录操作命令详解

    对文件目录操作命令详解 cd——切换目录 pwd——显示当前工作目录 ls——列出目录内容 touch——创建空文件和刷新时间 stat——查看文件状态 cp——复制文件和目录 mv——移动和重命名文件 rm——删除文件或目录 目录操作 tree 显示目录树 mkdir 创建目录 rmdir 删除空目录 rm -r 递归删除目录树 alias——命令别名 文…

    Linux干货 2016-09-06
  • linux 简单命令

    前面介绍一些基本基础篇 后面主要介绍screen命令的用法。

    2017-11-19
  • 基于Keepalived实现LVS双主高可用集群

    前言 前面说过基于heartbeat的LVS高可用方案,今天带来另一种解决方案:基于Keepalived实现LVS双主高可用集群。什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生。本文将详细讲述Keepalived工作原理及高可用解决方案的实现。 相关介绍 K…

    Linux干货 2015-06-16
  • 路径操作&StringIO/BytesIO

    Edit 路径操作&StringIO/BytesIO 路径操作 路径操作模块: 3.4版本以前os.path模块 In [1]: from os import path In [2]: p = path.join(‘/etc’,’sysconfig’,’network’)#将字符…

    Linux干货 2017-10-30
  • DNS基础及使用BIND搭建域名服务器

        本文主线是DNS服务相关概念和服务器搭建,在此之前了解一下域名这个东东很有其必要性,因为DNS服务就是应域名而生的。那么域名是什么哪?     域名     域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,用于在数据传输时标识计算机的电子方位。举…

    Linux干货 2015-06-11