网站建设服务器
Proxy _ cache: nginx缓存模块,用于设置nginx的缓存功能。
Nginx缓存原理:
Nginx的缓存文件是按照key:value存储的。Key直接存储在内存中,value指向本地文件系统目录,最多支持三个子目录。
Proxy_cache_path#用于设置nginx缓存的相关属性,只能出现在http段中。
示例:proxy _ cache _ path/nginx/cache 1 levels=1:2 keys _ zone=cache 1:100m inactive=1 dmax _ size=10g;
/nginx/cache1#缓存目录,所有者和组必须是运行nginx的用户。
Levels=2:3#设置目录的个数,其中2表示一级子目录的名称只能用2个字符表示,3表示二级子目录的名称只能用3个字符表示。
Keys_zone=cache1:100m#cache1表示缓存名称100m:表示内存中键的最大大小。
Inactive=1d#如果一天没有人访问这个缓存,那么这个缓存将被清除。
Max_size=10g#本地文件系统存储的最大缓存大小。
配置proxy_cache_path后,在需要缓存的地方调用它。
调用proxy_cache_path。
proxy _ cache cache1#调用名为cache1的缓存配置,proxy_cache可以出现在http、server和location段中。
Nginx缓存配置示例:
http {
包括mime.types
default_type应用程序/八位字节流;
在上发送文件;
keepalive _ timeout 65
proxy _ cache _ path/nginx/cache 1 levels=1:2 keys _ zone=cache 1:100m inactive=1d max _ size=10g;
#cache1缓存定义
服务器{
听80;
server_name本地主机;
位置/{
proxy _ cache cache1#调用缓存1缓存
proxy _ cache _ valid 200 1d#状态代码为200的页面被缓存一天。
proxy _ cache _ valid 301 302 10m#状态代码为301 302的页面被缓存10分钟。
proxy _ cache _ valid any 1m#所有剩余页面缓存1分钟。
proxy _ pass http://192 . 168 . 0 . 50/;
索引index.html index.htm;
}
}
}
验证:
1.客户端访问nginx服务器。
2.检查/nginx/cache1目录下是否生成了缓存目录。
3.更改后端服务器页面信息,使用客户端访问查看页面信息是否有变化(如果没有变化,则缓存已经成功建立)。
Proxy _ set _ header: http头设置。
有时候nginx代理的后端服务器需要记录客户端的ip地址,但是因为nginx代理,后端服务器记录的ip其实就是nginx的ip。后端服务器要想获得客户端的真实ip,需要proxy_set_header指令的配置。
proxy _ set _ headerHost $ host#Host自定义名称,$host存储主机名的变量。
proxy _ set _ header real-IP $ remote _ addr;#$remote_addr存储客户端ip的变量。
配置实例:
Nginx服务器:
服务器{
听80;
server_name本地主机;
位置/{
proxy _ set _ header real _ IP $ remote _ addr;#用标题名real_ip重新打包ip地址。
proxy _ pass http://192 . 168 . 0 . 50/;
索引index.html index.htm;
}
}
后端apache服务器:
log format % { real _ IP } I % h % l \ \ \ \ % r \ \ \ \ % s % b \ \ \ \ % { Referer } I \ \ \ \ \ \ \ \ % { User-Agent } I \ \ \ \组合
#将%{real_ip}i添加到LogFormat,其中real_ip是包的头名称。
验证:
1.查看后端服务器的access_log日志,看记录的ip是否是客户端的真实ip。
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。