#### nginx反向代理和缓存 > 准备两个nginx服务器(上有服务器100,代理是110) 反向代理默认就已经有这个模块了。不需要再去安装了。 准备两个服务器一个是192.168.1.100;一个是192.168.110 然后都安装nginx 在100的服务器上的html文件写入100 在110的服务器上的html文件写入110 ####然后修改110的nginx.conf ##### 在http里面server上面写入 upstream local{ server 192.168.1.100; #这个server可以多个(负载均衡) } ##### server 中的localtion配置 location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://local; } > 至于proxy_set_header,是因为反向代理的时候上游服务器不能获取用户的一些信息,必须考代理服务器传递, 所以用来配置,这样在上游服务器可 以获取这些变量。 然后访问192.168.1.110可以看到页面写着100,这就成功了。  #### 反向代理缓存 ##### 在代理服务器110上编辑配置文件  ####说明 upstream local 表示反向代理的节点名称local,里面配置的是要反向代理的地址 也可以写多个ip地址和端口; localtion / 里面表示设置的header头和缓存,和哪些状态码进行缓存,以及缓存的时间。 proxy_pass表示代理的块,就是upstream配置的local ####proxy_cache_path参数解释 /home/nginx:定义 proxy_cache 生成文件的根路径 levels:默认所有缓存文件都放在上面指定的根路径中,从而可能影响缓存的性能。推荐指定为 2 级目录来存储缓存文件 key_zone:这个的值是字符串,可以随意写。用于在共享内存中定义一块存储区域来存放缓存的 key 和 metadata(类似于使用次数),这样 nginx 可以快速判断一个 request 是否命中缓存。1m 可以存储 8000 个key max_size:最大 cache 空间。如果不指定,会使用掉所有 disk space。当达到 disk 上限后,会删除最少使用的 cache inactive:内存中缓存的过期检查周期。示例配置中如果 2h 内都没有被访问,则不论状态是否为 expired,都会清除缓存。需要注意的是,inactive 和 expired 配置项的含义是不同的,expired 只是判断过期时间,不会删除缓存;而 inactive 是直接删除过期缓存 use_temp_path:如果为 off,则 nginx 会将缓存文件直接写入指定的 cache 文件中,而不使用 temp_path 指定的临时存储路径 proxy_cache proxycache 缓存的键名称和配置的key是一个 proxy_cache_key $host$uri:定义 proxy_cache 生成文件的名称。值可以为 Nginx 支持的变量和字符串 proxy_cache_valid 200 304 1d;说明对于状态为200和304的缓存文件的缓存时间是1天,1天之后再访问该缓存文件时,文件会过期,从而去源服务器重新取数据。