⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ngx_http_cache.h

📁 Nginx是一个高性能的HTTP和反向代理服务器
💻 H
字号:
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_HTTP_CACHE_H_INCLUDED_#define _NGX_HTTP_CACHE_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>#include <ngx_http.h>/* * The 3 bits allows the 7 uses before the cache entry allocation. * We can use maximum 7 bits, i.e up to the 127 uses. */#define NGX_HTTP_CACHE_LAZY_ALLOCATION_BITS  3typedef struct {    uint32_t         crc;    ngx_str_t        key;    time_t           accessed;    unsigned         refs:20;    /* 1048576 references */    unsigned         count:NGX_HTTP_CACHE_LAZY_ALLOCATION_BITS;    unsigned         deleted:1;    unsigned         expired:1;    unsigned         memory:1;    unsigned         mmap:1;    unsigned         notify:1;    ngx_fd_t         fd;#if (NGX_USE_HTTP_FILE_CACHE_UNIQ)    ngx_file_uniq_t  uniq;       /* no needed with kqueue */#endif    time_t           last_modified;    time_t           updated;    union {        off_t        size;        ngx_str_t    value;    } data;} ngx_http_cache_entry_t;typedef struct {    time_t       expires;    time_t       last_modified;    time_t       date;    off_t        length;    size_t       key_len;    char         key[1];} ngx_http_cache_header_t;#define NGX_HTTP_CACHE_HASH   7#define NGX_HTTP_CACHE_NELTS  4typedef struct {    ngx_http_cache_entry_t   *elts;    size_t                    hash;    size_t                    nelts;    time_t                    life;    time_t                    update;#if (NGX_THREADS)    ngx_mutex_t               mutex;#endif    ngx_pool_t               *pool;} ngx_http_cache_hash_t;typedef struct {    ngx_http_cache_hash_t    *hash;    ngx_http_cache_entry_t   *cache;    ngx_file_t                file;    ngx_array_t               key;    uint32_t                  crc;    u_char                    md5[16];    ngx_path_t               *path;    ngx_buf_t                *buf;    time_t                    expires;    time_t                    last_modified;    time_t                    date;    off_t                     length;    size_t                    key_len;    size_t                    file_start;    ngx_file_uniq_t           uniq;    ngx_log_t                *log;    /* STUB */    ssize_t                   header_size;    ngx_str_t                 key0;} ngx_http_cache_t;typedef struct {    ngx_path_t               *path;    ngx_str_t                 key;    ngx_buf_t                *buf;    unsigned                  file:1;    unsigned                  memory:1;    unsigned                  primary:1;} ngx_http_cache_ctx_t;#define NGX_HTTP_CACHE_STALE     1#define NGX_HTTP_CACHE_AGED      2#define NGX_HTTP_CACHE_THE_SAME  3ngx_int_t ngx_http_cache_get(ngx_http_request_t *r, ngx_http_cache_ctx_t *ctx);ngx_int_t ngx_http_file_cache_get(ngx_http_request_t *r,                                  ngx_http_cache_ctx_t *ctx);ngx_int_t ngx_http_file_cache_open(ngx_http_cache_t *c);ngx_int_t ngx_http_cache_cleaner_handler(ngx_gc_t *gc, ngx_str_t *name,                                         ngx_dir_t *dir);#if 0ngx_http_cache_t *ngx_http_cache_get(ngx_http_cache_hash_t *cache,                                     ngx_http_cleanup_t *cleanup,                                     ngx_str_t *key, uint32_t *crc);ngx_http_cache_t *ngx_http_cache_alloc(ngx_http_cache_hash_t *hash,                                       ngx_http_cache_t *cache,                                       ngx_http_cleanup_t *cleanup,                                       ngx_str_t *key, uint32_t crc,                                       ngx_str_t *value, ngx_log_t *log);void ngx_http_cache_free(ngx_http_cache_t *cache,                         ngx_str_t *key, ngx_str_t *value, ngx_log_t *log);void ngx_http_cache_lock(ngx_http_cache_hash_t *hash, ngx_http_cache_t *cache);void ngx_http_cache_unlock(ngx_http_cache_hash_t *hash,                           ngx_http_cache_t *cache, ngx_log_t *log);int ngx_http_cache_update_file(ngx_http_request_t *r,ngx_http_cache_ctx_t *ctx,                               ngx_str_t *temp_file);int ngx_http_send_cached(ngx_http_request_t *r);char *ngx_http_set_cache_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);#endif#endif /* _NGX_HTTP_CACHE_H_INCLUDED_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -