zoukankan      html  css  js  c++  java
  • Nginx使用教程(七):使用Nginx缓存之proxy cache

    定义缓存目录

    <br>
    使用您喜欢的文本编辑器打开/etc/nginx/nginx.conf,并在http {区域加入:

    1. proxy_cache_path  /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
    2.  
    3. proxy_temp_path /var/www/cache/tmp;
    4.  
    5. real_ip_header X-Forwarded-For;

    前2行创建一个缓存目录。 真正的X-Forwarded-For头指示Nginx将原始IP地址转发到后端(端口8080),否则所有流量似乎都来自127.0.0.1。

    应用缓存

    <br>
    接下来,我们需要在/etc/nginx/sites-available/website下创建虚拟主机

    1. server {
    2.         listen 80;
    3.         server_name _;
    4.         server_tokens off;
    5.         location / {
    6.                 proxy_pass              http://127.0.0.1:8080/;
    7.                 proxy_set_header        Host                    $host;
    8.                 proxy_set_header        X-Real-IP               $remote_addr;
    9.                 proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
    10.                 proxy_cache  my-cache;
    11.                 proxy_cache_valid 3s;
    12.                 proxy_no_cache $cookie_PHPSESSID;
    13.                 proxy_cache_bypass $cookie_PHPSESSID;
    14.                 proxy_cache_key         "$scheme$host$request_uri";
    15.                 add_header X-Cache $upstream_cache_status;
    16.         }
    17. }
    18.  
    19. server {
    20.         listen   8080;
    21.         server_name _;
    22.         root /var/www/your_document_root/;
    23.         index index.php index.html index.htm;
    24.         server_tokens off;
    25.         location ~ .php$ {
    26.                 try_files $uri /index.php;
    27.                 fastcgi_pass 127.0.0.1:9000;
    28.                 fastcgi_index index.php;
    29.                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    30.                 include /etc/nginx/fastcgi_params;
    31.         }
    32.         location ~ /.ht {
    33.                 deny all;
    34.         }
    35. }

    然后通过执行以下操作启用它:

    1. cd
    2. ln -s /etc/nginx/sites-available/website /etc/nginx/sites-enabled/website
    3. /etc/init.d/nginx restart

    第一个服务器定义是在端口80上运行的反向缓存代理。
    第二个服务器定义用于后端(典型的nginx配置,端口8080,而不是80)。

    proxy相关指令介绍

    <br>
    proxy_pass http://127.0.0.1:8080/将流量转发到端口8080,Nginx后端位于该端口
    proxy_cache my-cache定义要使用的高速缓存,这里是my-cache,我们之前在nginx.conf中添加的
    proxy_cache_valid 3s将缓存时间设置为3秒。 在确定缓存到期之前的秒数(清除缓存)。 此数字可以根据您网站上的内容的新鲜度而增加或减少。
    proxy_no_cache $ cookie_PHPSESSID禁止反向缓存代理缓存具有PHPSESSID Cookie的请求。 否则,您的登录用户页面将被缓存并显示给其他人。 如果您使用的Cookie框架使用Cookie的默认PHPSESSID以外的Cookie名称,请务必替换。
    proxy_cache_bypass $ cookie_PHPSESSID指示代理绕过缓存,并且如果传入请求包含PHPSESSID Cookie,则将请求转发到后端。 否则,你最终会显示登录的用户,登出的版本(从缓存提供)。
    proxy_cache_key “$scheme$host$request_uri”定义用于缓存的键。 以下使用$ request_uri,它适合于根据url存储不同版本的页面(不同的GET参数,不同的内容)。
    add_header X-Cache $ upstream_cache_status可用于调试,返回HIT,BYPASS或EXPIRED,具体取决于请求是从高速缓存(HIT)提供还是从后端(MISS)提供.EXPIRED表示在高速缓存中找到缓存,但它已过期,并已转发到后端。

  • 相关阅读:
    windows类型
    网络编程socket、udp
    mem族函数与str族函数(待填)
    位运算符的用处(待填)
    c51较c比较,单片机最小系统
    数据结构之 顺序栈的操作
    [置顶] 数据结构之 顺序栈的操作
    java中常用的帮助类。加快开发速度
    php实现安装程序的 安装
    php压缩文件帮助类
  • 原文地址:https://www.cnblogs.com/felixzh/p/6283975.html
Copyright © 2011-2022 走看看