反向代理缓存:

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再测试,看效果大大不同吧。

配置Gzip压缩功能,以节约带宽。

gzip on;

启用和关闭gzip

gzip_min_length  1k;

最小压缩长度
  gzip_buffers     4 16k;

设定压缩响应的缓冲,默认大小等同于你的内存页,4k或8k至于多少取决于你的平台。
  gzip_http_version 1.0;

设置最低http协议版本
  gzip_comp_level 2;

设置压缩基本取值范围1-9
  gzip_types       text/html text/plain application/x-javascript text/css application/xml;

设置压缩类型
  gzip_vary on;

http部分调优: 

client_header_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE 取得。

open_file_cache max=102400 inactive=20s;
这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_valid 30s;
这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

参考文档:http://foreveryan.blog.51cto.com/3508502/674322

平滑升级:

先用新版本的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>

安装Tengine

  • tar zxvf tengine-2.0.3.tar.gz

  • cd tengine-2.0.3

编译之前先安装依赖程序包:

gd-2.0.35-11.el6.i686.rpm

gd-devel-2.0.35-11.el6.i686.rpm

GeoIP-1.4.8-1.el6.i686.rpm

GeoIP-devel-1.4.8-1.el6.i686.rpm

lua-devel

pcre-devel

开始编译安装:

./configure \

--prefix=/usr \

--sbin-path=/usr/sbin/nginx \

--conf-path=/etc/nginx/nginx.conf \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--pid-path=/var/run/nginx/nginx.pid  \

--lock-path=/var/lock/nginx.lock \

--user=nginx \

--group=nginx \

--enable-mods-shared=all

  • make && make install

详细用法参考官网:tengine.taobao.com

有问题欢迎与我交流QQ1183710107

Nginx缓存的配置调优,Tengine安装和配置。相关推荐

  1. mysql 配置root密码_Mysql安装与配置调优及修改root密码的方法

    一.安装 apt-get install mysql-server 需要设置账号密码 apt-get isntall mysql-client apt-get libmysqlclient-dev 2 ...

  2. 实战Nginx与PHP(FastCGI)的安装、配置与优化

     实战Nginx与PHP(FastCGI)的安装.配置与优化 2012-03-15 14:06:12 标签:安装 优化 配置 FastCGI PHP 原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  3. Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优

    第6章 Nginx性能监控与调优 6-1 nginx安装 6-2 ngx_http_stub_status监控连接信息 6-3 ngxtop监控请求信息 6-4 nginx-rrd图形化监控 6-5 ...

  4. Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案

    Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案 问题 linux的jetty下发布程序后再启动jetty服 ...

  5. oracle 11g初始段大小,Oracle 11g配置调优,一般需要注意哪些方面呢?

    一 创建数据库必须遵循的原则 1.强制数据库中创建的每一个表空间必须是本地管理. extent management local定义本地表空间. 2.确保数据库为每个用户自动分配一个默认的永久表空间. ...

  6. linux dhcp 服务失败,Centos7安装及配置DHCP服务,安装程序配置服务失败

    Centos7安装及配置DHCP服务,安装程序配置服务失败 DHCP服务概述: 名称:DHCP  - Dynamic Host Configuration Protocol  动态主机配置协议. 功能 ...

  7. Linux下apache性能配置调优

    Apache 性能配置优化 ###httpd 相关查看命令了解 查看当前安装模块mpm(多路处理器) [root@localhost ~]# httpd -l 查看httpd进程数(即各个mpm模式下 ...

  8. Nginx与PHP(FastCGI)的安装、配置、优化

    一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...

  9. mysql 缺省配置 崩溃_MySQL5.6初始配置调优_MySQL

    原文链接: What to tune in MySQL 5.6 after installation随着 大量默认选项的改进, MySQL 5.6比以前版本需要调优的选项大为减少. 在本文中我将讲述需 ...

最新文章

  1. mSystems:南土所梁玉婷组-土壤pH过滤稻田土壤耐铝微生物的关联模式
  2. python教程哪个版本好-tensorflow用python哪个版本更好?
  3. 在sql查询中使用表变量
  4. 二叉树的递归和非递归遍历
  5. socket python 收 发 队列 线程_对于Python中socket.listen()与多线程结合的困惑?
  6. mysql5.7.25my.ini_mysql5.7 没有my.ini 的解决办法
  7. C#异步编程(一):异步基础
  8. mac mysql my.cnf_mac 增加 my.cnf
  9. 我的世界中国版服务器无限夜视,我的世界服务器游戏技巧 无限夜视的方法
  10. 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
  11. 使用POI完成excel文件导出
  12. python 数据分析 电信_实例 | 教你用Python写一个电信客户流失预测模型
  13. idc机房运维巡检_20年代IDC的“新十二大”基础设施系统你都了解吗?
  14. wampserver显示红色、橙色的解决方案
  15. Tony.SerialPorts.RS232串口参数配置模块:扫描事件例程
  16. angular的传值,子传父,父传子
  17. c语言 寻找相同的数字,用c语言编写寻找既是完全平方数,又有两位数字相同的三位正整数,例如121,144等。...
  18. P4924 [1007]魔法少女小Scarlet
  19. C++程序设计 郑莉pdf
  20. Surface RT2使用情况

热门文章

  1. 组装自己的tesla超级计算机
  2. OpenCV中GPU模块使用
  3. Bugku-CTF之你必须让他停下+头等舱
  4. spring websocket基于STOMP协议实现,apache httpd反向代理配置
  5. JAVA使用POI如何导出百万级别数据
  6. form表单中的input有哪些类型
  7. Captcha插件后门分析和修复
  8. linux压缩与解压缩 tar命令
  9. mongo shell连接到mongoDB及shell提示符下执行js脚本
  10. nginx+memcache+tomcat配置(新手笔记)