码迷,mamicode.com
首页 > 系统相关 > 详细

linux nginx缓存

时间:2019-02-15 19:53:15      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:cache   tps   off   for   top   ack   amp   jsp   http   

安装环境

一台nginx服务器 192.168.80.100
两台web服务器 192.168.80.101,192.168.80.102

首先关闭防火墙

systemctl stop firewalld
setenforce 0
注:可以写防火墙规则

需要一下几个包

nginx-1.13.5.tar //nginx包
ngx_cache_purge-2.3.tar //清理缓存用的包
pcre-8.41.tar //pcre 依赖包

解压包到/opt/下

tar xf ngx_cache_purge-2.0.tar.gz -C /opt/ //解压软件包
tar xf pcre-8.31.tar.bz2 -C /opt/
tar xf nginx-1.13.5.tar.gz -C /opt/

安装插件

yum install -y zlib-devel

编译环境

yum install -y gcc gcc-c++ make

编译并安装

cd /opt/nginx-1.13.5/
定制功能:
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-pcre=/opt/pcre-8.41 \
--add-module=/opt/ngx_cache_purge-2.3
编译并安装:
make && make install

修改配置文件

vi /usr/local/nginx/conf/nginx.conf
技术图片
技术图片
技术图片
use epoll //新增 ,事件驱动模型
charset utf-8 //添加一个字符编码
以上去掉#号
技术图片
在http{
keepalive_timeout 65; 下添加上图
}
技术图片

keepalive_timeout 65; //在当前行下面新增,连接超时时间
tcp_nodelay on;
client_body_buffer_size 512k;
proxy_connect_timeout 5; #跟后端服务器连接超时时间,发起握手等候响应时间
proxy_read_timeout 60; #连接成功后等待后端服务器的响应时间,已经进入后端的排队之中等候处理
proxy_send_timeout 5; #后端服务器回传时间,就是在规定时间内后端服务器必须传完所有数据
proxy_buffer_size 16k; #代理请求缓冲区,会保存用户的头信息以供nginx进行处理
proxy_buffers 4 64k; #nginx保存单个用几个buffer最大用多少空间
proxy_busy_buffers_size 128k; #系统很忙时候可以申请最大的proxy_buffers
proxy_temp_file_write_size 128k; #proxy缓存临时文件的大小

#以下两行是开启nginx缓存功能的配置:
proxy_temp_path /var/cache/nginx/cache_temp;
#创建缓存的时候可能生成一些临时文件存放的位置,自动创建
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
#定义缓存存储目录;缓存级别,子目录级别,表示缓存目录的一级子目录是1个字符,二级子目录是2个字符;建立共享缓存,缓存数据元数据的空间,查缓存时,先从此空间查找,然后到相应目录中查找;缓存的时间;缓存空间大小
upstream backend_server{
server 192.168.80.185:80 weight=1 max_fails=2 fail_timeout=30s;
} 加权轮询

server_name test 192.168.80.182; //修改
index index.html index.htm; //从location处移动过来

location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header; #出现502-504或错误,会跳过此台服务器访问下一台服务器
proxy_cache cache_one; #启用名为cache_one缓存
proxy_cache_valid 200 304 12h; #状态码,有效时间12小时,其余状态码10分钟过期
proxy_cache_key $host$uri$is_args$args; #缓存key,通过唯一key来进行hash存取
proxy_set_header Host $host; #增加头部信息,方便观察客户端respoce是否命中
proxy_set_header X-Forwarded-For $remote_addr; #后端节点机器获取客户端真实ip,$remote_addr代表客户端的ip地址,
proxy_pass http://backend_server; 请求转向
expires 1d;
}
access_log off;
}
}

创建缓存目录

mkdir -p /var/cache/nginx/cache_temp

创建代理目录

mkdir /var/cache/nginx/proxy_cache

软连接到$PATH环境变量中,方便系统识别

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

创建一个程序用户

useradd -M -s /sbin/nologin nginx

检查nginx语法错误

nginx -t

启动nginx服务

nginx

查看ngnx是否启动

netstat -anpt | grep nginx

在web服务器上分别搭建一个httpd并能够访问到网页

技术图片

在windows浏览器上输入192.168.80.100

技术图片

测试命中:

技术图片

重新启动

pkill -9 nginx
nginx

测试

curl -I 192.168.80.100
技术图片

清除缓存:

方法一:rm删除已缓存的数据
rm -rf /var/cache/nginx/cache_temp/
rm -rf /var/cache/nginx/proxy_cache/

方法二:通过ngx_cache_purge扩展模块清理,需要编译安装
在server{}添加如下:
技术图片
location ~/purge(/.*) {
allow 127.0.0.1;
allow 192.168.80.0/24;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
location ~.(php|jsp|cgi)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
}

重启nginx

pkill -9 nginx
nginx

清除缓存

http://192.168.80.182/purge/
技术图片

linux nginx缓存

标签:cache   tps   off   for   top   ack   amp   jsp   http   

原文地址:http://blog.51cto.com/14150862/2350686

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!