反向代理缓存:
nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文。
可以在http全局配置内定义缓存。
http{
proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=cone:10m max_size=1g;
}
在Server里调用。
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.18.121;
proxy_cache cone;
proxy_cache_valid 202 1h;
proxy_cache_valid 302 10m;
proxy_cache_valid any 1m;
}
}
inactive:非活动缓存项从缓存中剔除之前的最大缓存时长;
配置成功了,那如何验证缓存有没有命中?
可以把后端服务器添加到upstream里面,引入一个upstream_cache_status变量其作用是检查缓存状态,用addheader添加到响应首部里面。
upstream模块常用指令:
ip_hash:基于客户端IP地址完成请求的分发,它可以保证来自于同一个客户端的请求始终被转发至同一个upstream服务器;
keepalive:后端服务器到upstream服务器的持久连接。
least_conn:最少连接调度算法;
server:定义一个upstream服务器的地址,还可包括一系列可选参数,如:
weight:权重;
max_fails:最大失败连接次数,失败连接的超时时长由fail_timeout指定;
fail_timeout:等待请求的目标服务器发送响应的时长;
backup:用于fallback的目的,所有服务均故障时才启动此服务器;
down:手动标记其不再处理任何请求;
example:
upstream backend {
ip_hash;
server www.magedu.com weight=5;
server www2.magedu.com:8080 max_fails=3 fail_timeout=30s;
}
Fastcgi缓存配置:
定义缓存
http{
fastcgi_cache_path /tmp/nginx/fastcgi levels=1:2 keys_zone=fcgi:20m max_size=1g;
}
设定主页和路径
server {
listen 80;
server_name localhost;
#charset koi8-r;
location / {
root /var/www/html;
index index.php;
}
}
配置缓存
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 192.168.18.121:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache fcgi;
fastcgi_cache_valid 200 10m;
fastcgi_cache_valid 301 302 2m;
fastcgi_cache_valid any 1m;
}
我们先把缓存给注释掉,然后reload,用ab命令测试下速率。
现在我们把缓存功能打开,然后reload再测试,看效果大大不同吧。
平滑升级:
先用新版本的Nginx程序把老版本的替换掉,然后给master进程发一个信号,让主进程重启一下。
kill -SIGUSER2 <master_process_id>
日志滚动:
-s reopen: kill -SIGUSR1 <master_process_id>
1、mv /var/log/nginx/access.log /var/log/nginx/access.bak
2、kill -s SIGUSR1 20980
信号发送完后,应该将源日志文件改名,或者移动到别的地方,系统会自动建立一个新日志文件。
重读配置文件:
-s reload:kill -SIGHUP <master_process_id>
本文出自 “坏人的博客” 博客,转载请与作者联系!
Nginx缓存的配置调优,Tengine安装和配置。,布布扣,bubuko.com
原文:http://tchuairen.blog.51cto.com/3848118/1439263