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 00:19
下一篇 2016-12-05 09:33

相关推荐

  • N25_第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; 2、写一个脚本     (1) 获取当前主机的主机名,保存于hostname变量中;     (2) 判断此变量的值是否为localhost,如果是…

    Linux干货 2017-02-02
  • ansible部署KeepAlived动态站点

    一、设计原因 利用ansible可以自动化部署KeepAlived 的双方模型(其中包括两个动态的站点),多组服务器需要一样的部署时 可以利用ansible写的程序来代替重复性的操作。 二、设计拓扑结构及服务器详情   三、详细步骤 1、环境的搭建 (1)安装ansible,同时配置私钥免密码进行通信 [root@localhost ~]# ssh…

    2015-05-13
  • 往死里苦练脚本啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #脚本内容 [root@centos script]# cat week9_title1.sh  #!/bin/bash #Author …

    Linux干货 2017-02-16
  • 配置yum服务器——以centOS 6.9系统为例

    准备工作 关闭防火墙  关闭防火墙service iptables stop  设置防火墙开机不启动chkconfig iptables off  查看一下防火墙状态 iptables -vnL 如下图,可以看到已经关闭 关闭SElinux 使用命令 vim /etc/selinux/config 将SELINUX=enable…

    Linux干货 2017-08-05
  • Centos系统 本地自动安装

    §·Centos系统光盘安装的流程 大概的了解下Centos的光盘系统安装流程: 1.插入光盘,出现菜单选择界面;通常情况下我们选择第一项: 第一项 : Install  or upgrade an existing system   2.默认进入图形界面安装并且进行一些必要的环境设置(安装前的配置阶段) 需要我们手工设置的项目…

    Linux干货 2016-09-15
  • linux入门第二课

    **linux入门基础** linux 命令类别 内部命令和外部命令 首先我们可以用echo $SHELL 来查询shell 里面会显示我们当前在用的shell 上图是echo $SHELL 也可以用cat /etc/shells来查询系统里面的shell bash其实是一个文件是一个程序 存在于 /bin/bash 目录,这是真是存在的文件,是一个可以执行…

    Linux干货 2017-05-20