共计 2257 个字符,预计需要花费 6 分钟才能阅读完成。
众所周知,Nginx 是一个高性能的 web 服务器,尤其在高并发和处理静态页面的时候有先天的优势;很大一部分得益于缓存的开启,那么如何开启 nginx 的缓存呢。
简单来说可以分两步:
1. 定义缓存存储目录并指定共享内存空间
2. 在 location 里指定共享内存空间
具体实现如下:
user www;
worker_processes auto;
events {
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
keepalive_timeout 65;
# 以下是缓存相关配置
proxy_cache_path /data/nginx/cache2 levels=1:2 keys_zone=mycache:1024m max_size=2048m inactive=1d ;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /apis/test/img {
proxy_pass http://192.168.1.2/;
# 以下三行是缓存相关配置
proxy_cache mycache;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_503 http_404;
}
error_page 500 502 503 504 /50x.html;
}
上述配置里 cache 相关,具体解释如下:
proxy_cache_path: 定义缓存目录,需要手动创建此目录;缓存数据存放至此。
/data/nginx/cache2:自定义的缓存目录,缓存中的文件名称是应用 MD5 的结果;另外,首先是将缓存响应写入临时文件,然后文件才被重命名;
levels=1:2:定义缓存的层次结构级别;这里表示缓存目录的第一级目录是 1 个字符,第二级目录是 2 个字符;结构类似:
keys_zone=mycache:1024m:内核中建立的用于缓存数据原数据的共享内存空间;这里存放缓存数据的原数据;查找缓存的时候,先从这个内核空间中找到,缓存数据的原数据,然后再到对应目录中查找缓存;我这里定义的 zone 名称为‘mycache’;
max_size=2048m:设置缓存空间的最大值;
inactive=1d: 设置缓存的数据保留时间,这里自定义 1 天内没有被访问过就删除;
proxy_cache:在 location 里设置内存缓存源数据空间名字,对应我们前面的设定 ’mycache’;
proxy_cache_valid: 可以为不同的响应状态码设置不同的缓存时间,比如这里 200 状态码,设置为 1 天;
proxy_cache_use_stale:指定后端服务器出现状况时,nginx 可以使用的过期缓存
另外可以设置 proxy_cache_key:用来指定缓存所使用的 key 的组合字符串,然后用 md5 进行加密。如不指定默认使用:$scheme$proxy_host$request_uri;
下面关于 Nginx 的文章您也可能喜欢,不妨参考下:
CentOS 7 下 Nginx 服务器的安装配置 https://www.linuxidc.com/Linux/2017-04/142986.htm
CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向 https://www.linuxidc.com/Linux/2017-04/142642.htm
CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)https://www.linuxidc.com/Linux/2017-04/142880.htm
Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块 https://www.linuxidc.com/Linux/2017-05/144333.htm
Nginx 服务的 SSL 认证和 htpasswd 认证 https://www.linuxidc.com/Linux/2017-04/142478.htm
Ubuntu 16.04 上启用加密安全的 Nginx Web 服务器 https://www.linuxidc.com/Linux/2017-07/145522.htm
Linux 中安装配置 Nginx 及参数详解 https://www.linuxidc.com/Linux/2017-05/143853.htm
Linux 下源码安装 Nginx(Ubuntu 和 CentOS 通用)https://www.linuxidc.com/Linux/2018-07/153296.htm
Nginx 实现端口转发 https://www.linuxidc.com/Linux/2018-07/153122.htm
使用 Nginx+Docker 配置 HTTPS 负载均衡 https://www.linuxidc.com/Linux/2018-06/152855.htm
CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置 https://www.linuxidc.com/Linux/2017-03/142168.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
: