跳到主要内容

Nginx代理和代理缓存

· 阅读需 2 分钟

基础代理配置

下载nginx到电脑上后,找到nginx.conf文件 添加server

server {
listen 80;
server_name testb.com;
location / {
proxy_pass http://127.0.0.1:8887;
proxy_set_header Host $host;
}
}

listen: 监听端口,现在的方式是监听到域名,然后到http://127.0.0.1:8887这个地址,所以默认80端口 server_name: 就是域名地址,

location: 匹配的路径

proxy_pass:代理到哪个地址, 这里是本地起的node服务,所以是127.0.0.1,需要注意的是本地使用域名,需要设置电脑的hosts文件,添加这个域名到hosts中,比如127.0.0.1 www.testb.com

proxy_set_header:设置代理头信息,这里设置host当前的域名,如果不设置,则默认是代理的地址

代理缓存

在nginx中,只要有一次缓存,其他用户再次请求时,可以直接使用缓存

nginx缓存配置

proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m;

proxy_cache_path 配置存放地址

cache 目录

levels 是否要创建二级文件夹

keys_zone 名称以及缓存大小

在server中配置

server {
listen 80;
server_name test.com;
location / {
proxy_cache my_cache;
proxy_pass http://127.0.0.1:8887;
proxy_set_header Host $host;
}
}

在服务端设置'max-age'启用缓存 's-max-age'代理服务器中有效

如果同时设置了'max-age''s-max-age',代理缓存会使用's-max-age',浏览器会使用'max-age'

'private': 只有浏览器能缓存,代理服务器的缓存不生效,也就是's-max-age'无作用

'no-store' 都不缓存

'Vary':请求头的Vary值相同的时候才使用缓存,也就是第一次请求的该Vary值不缓存,第二次请求时,发现Vary值已经请求过,则使用缓存