【 Nginx 】proxy_cache 模块的使用记录

部署环境:nginx + tomcat  同一台服务器。

  通过nginx反向代理tomcat。

  配置如下:

user  www www;
worker_processes  auto;

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

pid        logs/nginx.pid;

worker_rlimit_nofile 65535;

events {
    use epoll;
    multi_accept on;
    worker_connections  2048;
}

http {
    server_tokens off;
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  logs/access.log  main;
    open_log_file_cache max=1000 inactive=15s min_uses=2 valid=5m;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    client_header_timeout 2m;
    client_body_timeout 3m;
    reset_timedout_connection on;
    send_timeout 15s;

    open_file_cache max=65535 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    gzip  on;
    gzip_disable "msie6";
    gzip_proxied any;
    gzip_comp_level 4;
    gzip_min_length 1k;
    gzip_vary on;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_cache_path /usr/local/nginx/cache/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

    upstream backend_tomcat {
    server 10.0.10.5:10888 weight=1 max_fails=2 fail_timeout=30;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
        #proxy_pass http://10.0.10.5:10888;
        proxy_cache cache_one;
        proxy_cache_valid 200 304 12h;
        proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
        proxy_cache_key $host$uri$is_args$args;
        proxy_pass http://backend_tomcat;
        #expires 1d;
        }

    #location ~ .*\.()

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache‘s document root
        # concurs with nginx‘s one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include vhosts/*.conf;
}

  在此次配置中,使用到了proxy_cache模块,也因为这个模块造成了一个问题:

    用户通过页面登录系统,然后在通过页面按钮,点击退出。这时,如果点击浏览器的退后按钮

    就会出现页面为登出系统的界面,刷新也是停留在登录后的页面,还可以进行一系列的操作。

    通过这个问题,我还是对proxy_cache模块的怀疑,是否proxy_cache对session也存在缓存的问题。

  再次修改配置文件,取消proxy_cache的使用,上述问题得到解决。如果proxy_cache模块对每个需要登录的网站都存在以上问题,那proxy_cache存在的必要是什么?

时间: 2024-10-06 00:38:38

【 Nginx 】proxy_cache 模块的使用记录的相关文章

Nginx 事件模块

概述 Nginx 是以事件的触发来驱动的,事件驱动模型主要包括事件收集.事件发送.事件处理(即事件管理)三部分.在Nginx 的工作进程中主要关注的事件是 IO 网络事件 和 定时器事件.在生成的 objs 目录文件中,其中ngx_modules.c 文件的内容是 Nginx 各种模块的执行顺序,我们可以从该文件的内容中看到事件模块的执行顺序为以下所示:注意:由于是在 Linux 系统下,所以支持具体的 epoll 事件模块,接下来的文章结构按照以下顺序来写. extern ngx_module

Nginx 功能模块

一.Nginx 核心功能模块 (1) Nginx 核心功能模块负责 Nginx 的全局应用,主要对应主配置文件的 Main 区块和 Events 区块(2) Nginx 核心功能模块官网:http://nginx.org/en/docs/ngx_core_module.html 二.Nginx http 模块 Nginx http 功能模块 模块说明 ngx_http_core_module 包括一些核心的 http 参数配置,对应 Nginx 的配置为 HTTP 区块部分 ngx_http_a

HTTP扫盲及nginx基础性模块常用指令整理

第一部分:HTTP基础知识 在介绍nginx常用模块中的指令时,先来回顾一下http的相关知识: 1.http的工作原理 http的工作原理大致是这样的: a).客户端与服务器先建立一个TCP连接: b).客户端通过已建立的TCP连接向服务端发送一个http请求报文: c).服务器收到请求报文后开始解析报文.定位所请求的资源,读取资源并封装成响应报文后发送给客户端: d).如果没有启用持久连接,服务器端主动断开tcp连接,客户端被动关闭:如果启用了持久连接,那该tcp连接保持一段时间后,在该时间

Nginx rtmp模块nginx-rtmp-module指令详解

指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块.server语法:server { ... }上下文:rtmp描述:声明一个 RTMP 实例.rtmp {  server {  }}listen语法:listen (addr[:port]|port|unix:path) [bind] [ipv6only=on|off] [so_keepalive=on|off|keepidle:keepintvl:keepcnt]上下文:server描述:给 NG

测试nginx缓存模块ngx_cache_purge

服务器环境: 前端nginx version: nginx/1.9.7 后端Apache/2.2.15 (Unix) 访问地址http://192.168.1.10:88 Kernel Version: 2.6.32-573.8.1.el6.x86_64 关于测试工具ab: ab是Apache超文本传输协议(HTTP)的性能测试工具.其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求 使用此工具需要安装httpd,使用yum –y insta

nginx memcached模块解析

1nginx memcached模块 1.1概述 nginx memcached是一个使用内存来为访问页面加速的模块,当客户端请求到达nginx服务器时,nginx会先通过键值(比如说uri),去访问memcached服务器,当能从memcached服务器获取到数据时,会直接将数据封装,返回给客户端,否则,则继续访问相关服务如php,从相关应用获取到内容发送给客户端,同时由相关应用主动将内容写入到memcached服务器,以便下次访问时能起到加速的效果. nginx memcached模块与me

Nginx的模块开发指南

原文:http://www.evanmiller.org/nginx-modules-guide.html 译文:http://blog.csdn.net/tab_tab_tab/article/details/51407418 解蝙蝠侠的漫画人物有助于充分认识Nginx.Web服务器. 首先,蝙蝠侠快. Nginx也快. 然后,蝙蝠侠同犯罪做斗争,Nginx和浪费CPU周期和内存泄漏做斗争. 最后,蝙蝠侠在压力下进行 工作.Nginx就其本身而言,擅长重的服务器负载下运行. 但是,蝙蝠侠将在没

nginx -- handler模块(100%)

handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balancer.Handler模块就是接受来自客户端的请求并产生输出的模块.有些地方说upstream模块实际上也是一种handler模块,只不过它产生的内容来自于从后端服务器获取的,而非在本机产生的. 在上一章提到,配置文件中使用location指令可以配置content handler模块,当Ng

Nginx软件模块说明

Nginx软件模块说明 Nginx常用模块 注:以下只是列举Nginx常用模块,需要详细了解更多模块可以登录Nginx官方网站查看 功能模块 模块说明 ngx_http_core_module 包含一些核心的http参数配置,对应Nginx的配置为http区块部分 ngx_http_access_module 访问控制模块,用来控制网站用户对Nginx的访问 ngx_http_gzip_module 压缩模块,对返回的数据压缩,属于性能优化模块 ngx_http_proxy_module pro