linux nginx缓存

安装环境

一台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/

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

时间: 2024-10-13 16:30:28

linux nginx缓存的相关文章

centos6 LNMP的搭建(linux+nginx+mysql+php)

LNMP的搭建(linux+nginx+mysql+php) 简介 LNMP代表的就是:Linux系统下Nginx+MySQL+PHP网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Mysql是一个小型关系型数据库管理系统. PHP是一种在服务器端执行的嵌入HTML文档

MacOS + Linux + Nginx

Asp.Net Core 发布和部署( MacOS + Linux + Nginx ) 前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署. 有关如何在 Jexus 中进行部署,请参见本人的另一篇文章:http://www.cnblogs.com/savorboard/p/dot-net-linux-jexus.html 目录 新建一个 WebApp 项目 发布到 Linux,Mac OS

linux+Nginx+Mysql+Php图示,操作步骤详解!

LNMP简介 LAMP(Linux apache mysql php)---比较早的web服务. LNMP(Linux nginx mysql php)---比较潮流,新的webn服务,使用率上升趋势(国内非常流行). Nginx(Engine X),是俄罗斯人开发的,开源的www服务软件,软件一共780K(非常小),是一款静态(html,js,css,jpg等)www软件,静态小文件高并发,同时占用资源很少. Nginx使用平台(linux unix windows都可以)和apache一样.

Nginx缓存加速

一.Nginx缓存概述 提供与Squid类似的缓存,把URL以及相关信息当成key,用MD5编码哈希后,把数据文件保存在硬盘上,并且只能为指定的URL或者状态码设置过期时间,并不支持类似 squid的purge命令来手动清除指定缓存页面,但是可以通过第三方的ngx_cache_purge来清除指定的URL缓存 Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(PHP动态缓存)两个功能模块完成 1.proxy_cache原理 2.Nginx缓

[nginx]linux nginx 安装

linux nginx 安装 作者:flymaster qq:908601287 blog:http://www.cnblogs.com/flymaster500/ 1.第一种安装:编译安装 编译安装NGINX 1. 查看安装系统环境[[email protected] ~]# cat /etc/redhat-releaseCentOS release 6.7 (Final)[[email protected] ~]# uname -r2.6.32-573.el6.x86_64[[email p

Linux nginx日志按天分割实例

Linux nginx日志按天分割实例 nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理 这就需要我们自己来实现了,按日期每天生产一个日志文件 思路 每天零点把默认日志文件改名为当天日期,再重新打开新的日志文件 使用定时任务来执行脚本,脚本中执行改名和重新打开日志文件的操作 向Nginx主进程发送 USR1 信号,就可以重新打开日志文件 实现 #/bin/bash #备份日志的路径bakpath='/home/nginx/

nginx缓存设置proxy_cache

http://www.cnblogs.com/dudu/p/4597351.html http块: proxy_cache_path /tmp/cache levels=1:2 keys_zone=nuget-cache:20m max_size=50g inactive=168h; server块: proxy_cache nuget-cache; proxy_cache_valid 168h; proxy_ignore_headers Set-Cookie Cache-Control;  

How To Install Linux, nginx, MySQL, PHP (LEMP) stack on CentOS 6

About Lemp LEMP stack is a group of open source software to get web servers up and running. The acronym stands for Linux, nginx (pronounced Engine x), MySQL, and PHP. Since the server is already running CentOS, the linux part is taken care of. Here i

LAMP架构演进到LAMPGC,再演进到LNMLGC(linux+nginx+mysql+lua+gearman+C)

LAMP是一个大众的架构了,linux+apache+mysql+php 在我们系统的架构中,做了进一步的演进,linux+apahce+mysql+php+gearman+C php作页面的展示 核心业务逻辑由C语言实现,php通过gearman中间件调用C任务 由于apache在高并发方面不太给力,因此在需要高并发的场景中,我们进一步演进,linux+nginx+mysql+php+lua+gearman+C 页面部分由nginx+fastcgi+php-fpm来展示 高并发的业务调用由ng