文档详情

b高性能Web服务器nginx及相关新技术的应用实践_SD2C.ppt

发布:2018-06-24约9.4千字共53页下载文档
文本预览下载声明
Nginx的Web缓存服务 Nginx的缓存功能 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能; 缓存把URL及相关组合当作Key,用md5编码哈希后保存; Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面; 采用MMAP实现,设置的缓存区大小不能超过物理内存+SWAP的值。 反向代理中的Nginx.conf缓存配置① …… #设置Web缓存区名称为cache_one,缓存空间大小为2000MB,1天清理一次缓存,单个文件超过5m不缓存。 proxy_cache_path /data0/proxy_cache_path levels=1:2 keys_zone=cache_one:2000m inactive=1d max_size=5m; #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data0/proxy_temp_path; upstream my_server_pool { server :80 weight=1 max_fails=2 fail_timeout=30s; server :80 weight=1 max_fails=2 fail_timeout=30s; } …… 反向代理中的Nginx.conf缓存配置② server { listen 80; server_name ; location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://my_server_pool; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { #对图片、JS、CSS进行缓存,使用Web缓存区cache_one proxy_cache cache_one; 反向代理中的Nginx.conf缓存配置③ #对不同HTTP状态码缓存设置不同的缓存时间 proxy_cache_valid 200 10m; proxy_cache_valid 304 3m; proxy_cache_valid 301 302 1h; proxy_cache_valid any 1m; #设置Web缓存的Key值,Nginx根据Key值md5哈希存储缓存,这里根据“域名、URI、客户端请求Header头中的If-Modified-Since信息”组合成Key。 proxy_cache_key $host$request_uri$http_if_modified_since; #反向代理,访问后端内容源服务器 proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://my_server_pool; } access_log off; } Nginx缓存功能的优点 对于修改实时性要求不高的图片、Flash、CSS样式文件、JavaScript文件,可以在Nginx反向代理(负载均衡)服务器上设置缓存,不用每次请求都转发到后端Web服务器,加快了响应速度。 减少了Nginx与后端Web服务器的连接数,提高了Nginx处理性能。 Nginx的Rewrite重写规则 Nginx Rewrite规则相关指令 Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下: rewrite ^/b/(.*)\.html /play.php?video=$1 break; 如果加上if语句,示例如下: if (!-f $request_filename) { rewrite ^/img/(.*)$ /site/$host/images/$1 last; } Nginx与Apache的Rewrite规则实例对比① 简单的Nginx和Apache
显示全部
相似文档