1)nginx.conf配置

[root@inner-lb01 ~]# cat /data/nginx/conf/nginx.conf
user www;
worker_processes 8; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 65535;
} http {
include mime.types;
default_type application/octet-stream;
charset utf-8; ######
## set access log format
######
log_format main '$remote_addr $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'$http_user_agent $http_x_forwarded_for $request_time $upstream_response_time $upstream_addr $upstream_status'; #######
## http setting
#######
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
proxy_cache_path /var/www/cache levels=1:2 keys_zone=mycache:20m max_size=2048m inactive=60m;
proxy_temp_path /var/www/cache/tmp; fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_read_timeout 3000;
fastcgi_buffer_size 256k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on; #
client_header_timeout 600s;
client_body_timeout 600s;
# client_max_body_size 50m;
client_max_body_size 100m;
client_body_buffer_size 256k; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
gzip_vary on; ## includes vhosts
include vhosts/*.conf;
}

针对上面的配置,注意下面两点:
1. log_format如上的配置后,nginx的log日志中就能显示客户端访问的来源ip了。如下:
[root@inner-lb01 ~]# tail -10 /data/nginx/logs/bs7001.wangshibo.cn-access.log

172.16.51.163 - [21/Nov/2017:17:01:46 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.033 0.033 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:01:46 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.021 0.021 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:01:52 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.028 0.028 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:01:52 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.022 0.022 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:01:58 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.033 0.033 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:01:58 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.021 0.021 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:02:04 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.034 0.034 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:02:04 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.021 0.021 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:02:10 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.031 0.031 172.16.51.161:7001 200
172.16.51.163 - [21/Nov/2017:17:02:10 +0800] "POST /SmartPage/baseBusinessEventServer.service HTTP/1.1" 200 408 "-" Java/1.7.0_79 - 0.022 0.022 172.16.51.161:7001 200

2. nginx的静态缓存配置:
proxy_cache_path /var/www/cache          表示定义缓存存储目录,手动创建;
levels=1:2          缓存级别,表示缓存目录的第一级目录是1个字符,第二级目录是2个字符;
keys_zone=mycache:20m      内核中建立用于缓存缓存数据源数据的空间,查找缓存的时候,先从这个内核空间中找到,缓存数据的源数据,然后再到对应目录中查找缓存;
max_size=2048m        缓存空间最大值;
inactive=60m         缓存的数据,60分钟内没有被访问过就删除
proxy_temp_path /var/www/cache/tmp         表示创建缓存的时候可能生成一些临时文件存放的位置,自动创建

2)vhosts虚拟目录的upstream配置

[root@inner-lb01 ~]# cat /data/nginx/conf/vhosts/bs7001.wangshibo.cn.conf
upstream bs7001 {
ip_hash;
server 172.16.51.161:7001 max_fails=3 fail_timeout=15s;
server 172.16.51.162:7001 max_fails=3 fail_timeout=15s;
} server {
listen 80;
server_name bs7001.wangshibo.cn; access_log /data/nginx/logs/bs7001.wangshibo.cn-access.log main;
error_log /data/nginx/logs/bs7001.wangshibo.cn-error.log; location / {
proxy_pass http://bs7001;
proxy_redirect off ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 600;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
proxy_max_temp_file_size 128m;
proxy_cache mycache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
}
}

由上面的配置需要注意:
proxy_cache mycache;            表示内存缓存源数据空间名字,nginx.conf文件里已经定义
proxy_cache_valid 200 302 1h;       表示200、302状态的页面资源缓存1小时
proxy_cache_valid 301 1d;        表示301状态的页面资源缓存1天
proxy_cache_valid any 1m;       他缓存1分钟

 3)清理cache缓存

[root@inner-lb01 ~]# ll /var/www/cache/
total 68
drwx------ 27 www www 4096 Nov 21 16:24 0
drwx------ 24 www www 4096 Nov 21 16:24 1
drwx------ 27 www www 4096 Nov 21 16:24 2
drwx------ 21 www www 4096 Nov 21 17:18 3
drwx------ 35 www www 4096 Nov 21 16:24 4
drwx------ 31 www www 4096 Nov 21 16:24 5
drwx------ 34 www www 4096 Nov 21 14:38 6
drwx------ 28 www www 4096 Nov 21 14:38 7
drwx------ 26 www www 4096 Nov 21 16:25 8
drwx------ 23 www www 4096 Nov 21 16:24 9
drwx------ 25 www www 4096 Nov 21 16:13 a
drwx------ 25 www www 4096 Nov 21 14:58 b
drwx------ 21 www www 4096 Nov 21 16:24 c
drwx------ 18 www www 4096 Nov 21 16:12 d
drwx------ 18 www www 4096 Nov 21 16:25 e
drwx------ 20 www www 4096 Nov 21 16:24 f
drwx------ 2 www root 4096 Nov 21 17:18 tmp

编写批量清理缓存的脚本

[root@inner-lb01 ~]# cat /opt/nginx_cache_clean.sh
#!/bin/bash
#Email:wangshibo@wangshibo.com
#Auto Clean Nginx Proxy_Cache Shell Scripts
#Aunthor:wanghsibo
#Date:2017-11-20
echo -e "\n\n"
echo -n -e "\e[35;1m请输入Nginx Proxy_cache缓存的具体路径(友情提示:可以使用Tab补全功能哦!)\e[0m\e[34;5m:\e[0m"
read -e path
CACHE_DIR=$path
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -n -e "\e[32;1m请输入你要删除的动作\n1.按文件类型删除\t2.按具体文件名删除\t3.按文件目录删除\n:"
read action
case $action in
1)
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -n -e "\e[34;1m 请输入你要删除的缓存文件类型(可以输入多个参数空格隔开)\e[0m\e[34;5m:\e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
do
grep -r -a \.$i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
for j in `cat /tmp/cache_list.txt`
do
rm -rf $j
echo "$i $j 删除成功!"
done
done
;;
2)
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -n -e "\e[33;1m 请输入你要删除的缓存文件具体名称(可以输入多个参数空格隔开)\e[0m\e[34;5m:\e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
do
grep -r -a $i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
for j in `cat /tmp/cache_list.txt`
do
rm -rf $j
echo "$i $j 删除成功!"
done
done
;;
3)
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
echo -n -e "\e[33;1m支持的模式有:\n1.清除网站store目录下的所有缓存:test.dd.com/data/upload/shop/store\n2.清除网站shop下的所有缓存:test.dd.com/data/upload/shop\e[0m\n"
echo -n -e "\e[34;1m 请输入你要删除的缓存文件具体目录\e[0m\e[34;5m:\e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
do
grep -r -a "$i" ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
for j in `cat /tmp/cache_list.txt`
do
rm -rf $j
echo "$i $j 删除成功!"
done
done
;;
*)
echo "输入错误,请重新输入"
;;
esac

执行脚本:

[root@inner-lb01 ~]# chmod 755 /opt/nginx_cache_clean.sh
[root@inner-lb01 ~]# sh /opt/nginx_cache_clean.sh 请输入Nginx Proxy_cache缓存的具体路径(友情提示:可以使用Tab补全功能哦!):/var/www/cache/
----------------------------------------------------------------
----------------------------------------------------------------
请输入你要删除的动作
1.按文件类型删除 2.按具体文件名删除 3.按文件目录删除
:1
----------------------------------------------------------------
----------------------------------------------------------------
请输入你要删除的缓存文件类型(可以输入多个参数空格隔开):html htm js css jpg gif png jpeg bmp flv swf ico
html /var/www/cache/6/5e/75685391e510dde1671cb198c113e5e6 删除成功!
html /var/www/cache/3/b7/49e71a93813bcedd9e0c679bc20c1b73 删除成功!
html /var/www/cache/3/b7/49e71a93813bcedd9e0c679bc20c1b73 删除成功!
html /var/www/cache/8/86/ee4a14c4cc9e12503f9e8bef123df868 删除成功!
html /var/www/cache/8/53/a9e2ef17aba2c92aac71b36a50329538 删除成功!
html /var/www/cache/8/53/a9e2ef17aba2c92aac71b36a50329538 删除成功!
html /var/www/cache/8/53/a9e2ef17aba2c92aac71b36a50329538 删除成功!
html /var/www/cache/8/53/a9e2ef17aba2c92aac71b36a50329538 删除成功!
js /var/www/cache/f/3c/6a74478ecb76c1235ef47766e1b333cf 删除成功!
js /var/www/cache/f/3c/6a74478ecb76c1235ef47766e1b333cf 删除成功!
js /var/www/cache/1/2b/eeabd84e3ed8cc4bec61f608e2ab32b1 删除成功!
js /var/www/cache/6/98/e38773f35e9e18fe4449396105faf986 删除成功!
js /var/www/cache/e/d6/5c7f20342601e4cee752424175e35d6e 删除成功!
js /var/www/cache/8/f9/ec9fa02ace81a82d98baa04b3d810f98 删除成功!
js /var/www/cache/7/62/4ad7e6a1ea04cf484a911250e5af5627 删除成功!
js /var/www/cache/7/62/4ad7e6a1ea04cf484a911250e5af5627 删除成功!
js /var/www/cache/c/a7/1edf94c22612d6e7f2cb2c0b289dba7c 删除成功!
js /var/www/cache/a/2e/6673665a2ec9fae7640f61c121ae42ea 删除成功!
css /var/www/cache/7/45/26ddc4b8c5085be9757b90cd4a36a457 删除成功!
css /var/www/cache/7/45/26ddc4b8c5085be9757b90cd4a36a457 删除成功!
css /var/www/cache/7/7f/cb39e58e71c9fb5a1ba77107288167f7 删除成功!
css /var/www/cache/7/7f/cb39e58e71c9fb5a1ba77107288167f7 删除成功!
css /var/www/cache/a/45/9270775ac808bde171eda5f39547845a 删除成功!
css /var/www/cache/a/45/9270775ac808bde171eda5f39547845a 删除成功!
css /var/www/cache/a/45/9270775ac808bde171eda5f39547845a 删除成功!
css /var/www/cache/2/40/ab83b9cdeec1955375d28f6e74b6e402 删除成功!
css /var/www/cache/2/40/ab83b9cdeec1955375d28f6e74b6e402 删除成功!
png /var/www/cache/f/a0/eaa602c9070ef04101a5c148d63b4a0f 删除成功!
png /var/www/cache/f/a0/eaa602c9070ef04101a5c148d63b4a0f 删除成功!
png /var/www/cache/f/a0/eaa602c9070ef04101a5c148d63b4a0f 删除成功!
png /var/www/cache/f/a0/eaa602c9070ef04101a5c148d63b4a0f 删除成功!
png /var/www/cache/f/a0/eaa602c9070ef04101a5c148d63b4a0f 删除成功!
png /var/www/cache/1/f7/3ba2c5ee13c4a086ed885221cb1a9f71 删除成功!
png /var/www/cache/1/f7/3ba2c5ee13c4a086ed885221cb1a9f71 删除成功!
png /var/www/cache/6/f3/5e00a9011498e811a075031373928f36 删除成功!
png /var/www/cache/6/f3/5e00a9011498e811a075031373928f36 删除成功!
png /var/www/cache/8/70/03a64ee54acbe99ce81d2e907edec708 删除成功!

上面脚本执行后,会提示输入cache的缓存目录,然后选择删除缓存文件的条件(这里我选择"按文件类型删除"),选择了删除html 、htm、js、css、jpg 、gif、 png 、jpeg 、bmp 、flv、 swf 、ico这12中文件格式的缓存文件。

或者直接使用find命令查找缓存目录下的文件,直接将文件全部删除

# find /var/www/cache -type f|xargs rm -f 

-------------------Nginx禁用html、js、css缓存-----------------

在本地开发的时候,经常会碰到缓存引起的莫名其妙的问题,最暴力的方式就是清掉浏览器的缓存,或者使用Ctrl + F5,Shift + F5强制刷新页面。
有时候按了好几下,缓存还是清不掉,只能暂时禁用浏览器静态资源缓存了,配置如下:
location ~.*\.(js|css|html|png|jpg)$
{
add_header Cache-Control no-cache;
} 或者
location /js
{
add_header Cache-Control no-cache;
} 现在,按F5就行了!

Nginx 负载均衡的Cache缓存批量清理的操作记录的更多相关文章

  1. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  2. Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  3. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

  4. [转载]Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  5. (转)Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    原文:http://blog.51cto.com/freeloda/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Ng ...

  6. [ 总结 ] nginx 负载均衡 及 缓存

    操作系统:centos6.4 x64 前端使用nginx做反向代理,后端服务器为:apache + php + mysql 1. nginx负载均衡. nginx编译安装(编译安装前面的文章已经写过) ...

  7. [转]Nginx负载均衡原理初解

    什么是负载均衡 我们知道单台服务器的性能是有上限的,当流量很大时,就需要使用多台服务器来共同提供服务,这就是所谓的集群. 负载均衡服务器,就是用来把经过它的流量,按照某种方法,分配到集群中的各台服务器 ...

  8. Nginx负载均衡中后端节点服务器健康检查的操作梳理

    正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...

  9. nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理

    Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案.nginx可以用轮询.IP哈希.URL哈希等方式调度后端服务器,同时也能提供健康检查功能 ...

随机推荐

  1. HDU ACM 1879 继续畅通工程

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  2. tkinter学习系列之(八) Canvas控件

    目录 目录 前言 (一)carves创建方法 (二)carves的画图方法 目录 前言 由于最近想在tkinter里内嵌matplotlib,由于用到tkinter里的carves控件,先学习一下. ...

  3. SAP ABAP 如何查找SMOD增强

    1.查找程序名 T-CODE:SE93 2.查找开发类 T-code:se38 3.查找SMOD增强 T-CODE:SE16N.表:TADIR 4.查看增强具有哪些功能 T-CODE:SE16N.表: ...

  4. iOS网络篇

    iOS网络请求三步: 1.新建URL连接 2.新建请求(请求新建的URL连接) 3.建立连接. 然后就可以获取数据了. 一.同步GET请求方法 -(void)synchronizationGet { ...

  5. arcgis api for javascript中使用proxy.jsp

    当我们使用arcgis api for javascript 查询arcgis服务时,如果查询的参数很长时,通过get方式提交会查询不到结果,因为get方式提交的参数有长度限制,需要通过代理的方式使用 ...

  6. linux永久配置ip地址

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 i修改 DEVICE=eth() BOOTPROTO=static ONBOOT=yes IPADDR=192 ...

  7. 转载 Spring、Spring MVC、MyBatis整合文件配置详解

    Spring.Spring MVC.MyBatis整合文件配置详解   使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...

  8. day10,11-Python 基本数据类型介绍之数字与字符串(看看就好)

    数字:int #字符串转换整型 a = "123" print(type(a),a) b = int(a) print(type(b),b) b = b + 1000 print( ...

  9. mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    如果出现: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因是Mapper i ...

  10. Linux系统学习之文件管理

    Linux目录分布通常是树形,所以它的结构又称为目录树. 一.文件和目录管理 [root@Cfhost-170820-UCNK /]# cd / [root@Cfhost-170820-UCNK /] ...