Nginx 反向代理并缓存及缓存清除的方法

本文介绍了Nginx 反向代理并缓存及缓存清除的方法,分享给大家,具体如下:

一. Nginx 配置

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid    logs/nginx.pid;

events {
  worker_connections 1024;
}

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"'
       '$upstream_addr $upstream_status $request_time $upstream_response_time';

  access_log /var/log/nginx/access.log main;
  error_log  /var/log/nginx/error.log;

  server_tokens off;
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  tcp_nopush   on;
  client_max_body_size 10m;
  client_body_buffer_size 128k;

  proxy_connect_timeout 300;
  proxy_send_timeout 300;
  proxy_read_timeout 300;
  proxy_buffer_size 64k;
  proxy_buffers 4 512k;
  proxy_busy_buffers_size 512k;
  proxy_temp_file_write_size 512k;
  proxy_temp_path  /data/nginx/proxy_temp;
  proxy_cache_path /data/nginx/proxy_cache levels=1:2 keys_zone=cache_one:2000m inactive=3d max_size=500g;

  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

  upstream go {
    server www.cnblogs.com:80 weight=4;
    #server 42.121.252.58:80 weight=4;
  }

  server {

      listen  192.168.55.133:80;
      #server_name www.cnblogs.com;
      access_log /var/log/nginx/go.access.log main;
      error_log  /var/log/nginx/go.error.log error;

      location / {
          proxy_cache cache_one;
          #proxy_cache_valid 200 304 301 302 2h;
          #proxy_cache_valid any 2h;
          #expires 1d;
          add_header X-Cache $upstream_cache_status;
          proxy_pass http://go;
          proxy_cache_key  $uri$is_args$args;
      }

      location ~ /purge(/.*) {
        allow       127.0.0.1;
        allow       192.168.55.0/24;
        deny        all;
        proxy_cache_purge cache_one $1$is_args$args;
    }

  }
}

二. 测试

1.首次访问

2.刷新一次,也就是第二次访问

3.缓存清理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET 性能优化之反向代理缓存使用介绍

    到目前为止,我们讨论了把缓存存放在ASP.NET的输出缓存中(内存和硬盘),以及浏览器缓存中,而大型站点的另一种常用做法是将缓存部署在反向代理服务器上,这类缓存我们通常称之为反向代理缓存,比如Squid和Varnish.这两款软件通常都部署在非WINDOWS平台上,对于Windows平台上的Asp.net来说,其实一样能使用,我们完全可以把反向代理软件部署在LINUX上,然后代理会路由到后台的WINDOWS WEB(IIS)服务器.总之,非WINDOWS的世界很精彩. 当然,无论是squid还是

  • 反向代理缓存的详细介绍

    反向代理缓存的详细介绍  传统代理: 用户隐藏在代理服务器之后.代理服务器工作在应用层,它只转发它支持的协议的数据.    反向代理(Reverse Proxy): 这种机制是Web服务器隐藏在代理服务器之后,实现这种机制的服务器称作反向代理服务器(Reverse Proxy Server).此时,Web服务器成为后端服务器,反向代理服务器称为前端服务器. 引入反向代理服务器的目的之一就是基于缓存的加速.我们可以将内容缓存在反向代理服务器上,所有缓存机制的实现仍然采用HTTP/1.1协议. 反向

  • C#实现可缓存网页到本地的反向代理工具实例

    本文实例讲述了C#实现可缓存网页到本地的反向代理工具.分享给大家供大家参考.具体实现方法如下: proxy.ashx 主文件: <%@ WebHandler Language="C#" Class="proxy" %> using System; using System.Web; using System.Net; using System.Text; using System.IO; using System.Collections.Generic;

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

    注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载: CentOS 6.4下载地址:http://www.jb51.net/softs/78243.html Nginx下载地址:http://www.jb51.net/softs/35633.html 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.nginx作为web服务器的操作讲解.nginx作为LNM

  • linux下通过Squid反向代理搭建CDN缓存服务器的配置方法

    案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开www.abc.com很慢,甚至打不开解决方案:在移动机房放置一台CDN代理服务器,通过智能DNS解析,让电信用户直接访问Web服务器.让移动用户访问CDN代理服务器,解决移动用户访问Web服务器慢的问题具体操作:CDN代理服务器:系统:CentOS 5.5 主机名:cdn.abc.com IP:192

  • 使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法

    碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1.在移动机房放置一台nginx反向代理服务器2.通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3.nginx反向代理服务器与web服务器之间采用专线连接说明:1.web服务器线路:电信IP:192.168.21.129域名:www.osyunwei.com2.nginx反向代理服务器线路:移动系统:CentOS 6.2IP:192.168.21.164vi

  • Nginx服务器作反向代理时的缓存配置要点解析

    这里给出示例,并详解. http { [...] [...] proxy_cache_path /data/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache_key "$host$request_uri"; server { server_name www.jb51.net jb51.net; root /home/www.jb51.net/web; index index.php index.

  • Nginx 反向代理并缓存及缓存清除的方法

    本文介绍了Nginx 反向代理并缓存及缓存清除的方法,分享给大家,具体如下: 一. Nginx 配置 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { log_form

  • 详解Nginx反向代理和负载均衡部署指南

    Nginx反向代理和负载均衡部署指南,具体如下: 1.  安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包: 2)  解压后复制到部署目录. 2.  启动和停止Nginx Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录. 1) 启动Nginx:start nginx 2)  停止Nginx:nginx -s stop 3)修改配置后重启:nginx

  • Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例

    Nginx  ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布. Nginx 的中文维基:http://wiki.codemongers.com/NginxChs 在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx

  • CentOS基于nginx反向代理实现负载均衡的方法

    本文实例讲述了CentOS基于nginx反向代理实现负载均衡的方法.分享给大家供大家参考,具体如下: nginx做负载均衡的优点: 1.工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名.目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,nginx单凭这点可利用的场合就远多于LVS了 2.nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一:相反LVS对网络稳定性依赖比较大,这点本人深有体会

  • nginx反向代理二级域名绑定方法及注意事项

    摘要 本文介绍了利用nginx实现多域名和多站点的绑定的方法及相关注意事项.您也可以只看标题或红色标注部分.☺ 1.应用场景 我们经常会遇到在同一台服务器建立多个Web站点的情况,普遍的做法是为不同的站点配置不同的端口,这样就可以用IP:Port的形式访问. 但是用IP访问毕竟不方便,不生动,不容易记忆.那么,我们可以给每个站点绑定不同的域名.(在这里我们仅谈公网情况)即使我们只有一个域名,我们可以设置多个二级域名,使用Nginx很容易实现. 2.基本要求 通常,网上教程会直接贴一段配置文件的代

  • Nginx反向代理入门实战指南

    目录 概述 反向代理的作用 实践Nginx反向代理内网穿透8081端口 实现步骤 实现方式二配置upstream Nginx配置https支持 总结 概述 Nginx反向代理(Reverse Proxy):反向代理是指服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在. 反向代理的作用 对客户端隐藏服务器(集群)的IP地址 安全:作为应用层防火墙,为网站提供对

  • Nginx反向代理一个80端口下配置多个微信项目详解

    Nginx反向代理一个80端口下配置多个微信项目详解 我们要接入微信公众号平台开发,需要填写服务器配置,然后依据接口文档才能实现业务逻辑.但是微信公众号接口只支持80接口(80端口).我们因业务需求需要在一个公众号域名下面,发布两个需要微信授权的项目,怎么办? 我们可以用nginx服务器做反向代理来解决这个问题.nginx服务器对外80端口,然后根据URL参数不同,对内访问不同的项目. nginx配置如下: 打开/usr/local/nginx/conf/nginx.conf worker_pr

  • Nginx反向代理websocket配置实例

    最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的 1.下载 tengine 最近的源码 复制代码 代码如下: wget http://tengine.taobao.org/dow

  • Nginx作为反向代理时传递客户端IP的设置方法

    nginx默认配置文件里面是没有进行日志转发配置的,这个需要我们自己手动来操作了,当然后端的real server不同时操作方法是不一样的,这里我们分别例举几种情况来说明一下. nginx做前端,转发日志到后端nginx服务器: 因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值. 同样适用于前端是 Squid 或者其他反向代理的情况.

随机推荐