Nginx缓存的配置调优,Tengine安装和配置。
反向代理缓存:
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安装和配置。相关推荐
- mysql 配置root密码_Mysql安装与配置调优及修改root密码的方法
一.安装 apt-get install mysql-server 需要设置账号密码 apt-get isntall mysql-client apt-get libmysqlclient-dev 2 ...
- 实战Nginx与PHP(FastCGI)的安装、配置与优化
实战Nginx与PHP(FastCGI)的安装.配置与优化 2012-03-15 14:06:12 标签:安装 优化 配置 FastCGI PHP 原创作品,允许转载,转载时请务必以超链接形式标明文 ...
- Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优
第6章 Nginx性能监控与调优 6-1 nginx安装 6-2 ngx_http_stub_status监控连接信息 6-3 ngxtop监控请求信息 6-4 nginx-rrd图形化监控 6-5 ...
- Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案
Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案 问题 linux的jetty下发布程序后再启动jetty服 ...
- oracle 11g初始段大小,Oracle 11g配置调优,一般需要注意哪些方面呢?
一 创建数据库必须遵循的原则 1.强制数据库中创建的每一个表空间必须是本地管理. extent management local定义本地表空间. 2.确保数据库为每个用户自动分配一个默认的永久表空间. ...
- linux dhcp 服务失败,Centos7安装及配置DHCP服务,安装程序配置服务失败
Centos7安装及配置DHCP服务,安装程序配置服务失败 DHCP服务概述: 名称:DHCP - Dynamic Host Configuration Protocol 动态主机配置协议. 功能 ...
- Linux下apache性能配置调优
Apache 性能配置优化 ###httpd 相关查看命令了解 查看当前安装模块mpm(多路处理器) [root@localhost ~]# httpd -l 查看httpd进程数(即各个mpm模式下 ...
- Nginx与PHP(FastCGI)的安装、配置、优化
一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...
- mysql 缺省配置 崩溃_MySQL5.6初始配置调优_MySQL
原文链接: What to tune in MySQL 5.6 after installation随着 大量默认选项的改进, MySQL 5.6比以前版本需要调优的选项大为减少. 在本文中我将讲述需 ...
最新文章
- mSystems:南土所梁玉婷组-土壤pH过滤稻田土壤耐铝微生物的关联模式
- python教程哪个版本好-tensorflow用python哪个版本更好?
- 在sql查询中使用表变量
- 二叉树的递归和非递归遍历
- socket python 收 发 队列 线程_对于Python中socket.listen()与多线程结合的困惑?
- mysql5.7.25my.ini_mysql5.7 没有my.ini 的解决办法
- C#异步编程(一):异步基础
- mac mysql my.cnf_mac 增加 my.cnf
- 我的世界中国版服务器无限夜视,我的世界服务器游戏技巧 无限夜视的方法
- 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
- 使用POI完成excel文件导出
- python 数据分析 电信_实例 | 教你用Python写一个电信客户流失预测模型
- idc机房运维巡检_20年代IDC的“新十二大”基础设施系统你都了解吗?
- wampserver显示红色、橙色的解决方案
- Tony.SerialPorts.RS232串口参数配置模块:扫描事件例程
- angular的传值,子传父,父传子
- c语言 寻找相同的数字,用c语言编写寻找既是完全平方数,又有两位数字相同的三位正整数,例如121,144等。...
- P4924 [1007]魔法少女小Scarlet
- C++程序设计 郑莉pdf
- Surface RT2使用情况