当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx设置css/js/jpg/png等图片或静态文件的浏览器缓存时间      nginx作为web服务器,有时需要让浏览器缓存(Browser Caching) 是为了加速浏览并节约网络资源,浏览器在用户磁盘上对最近请求过的文档进行存储。   nginx通过 expires 指令来设置浏览器的Header .........
    ▪使用Nginx第三方模块ngx_slowfs_cache缓存静态文件      ngx_slowfs_cache:Module adding ability to cache static files。 ngx_slowfs_cache扩充了Nginx的缓存功能,通过 ngx_slowfs_cache 可以实现本地站点静态文件缓存。此功能为低速的存储设备创建快速缓存提供了可能.........
    ▪使用google-perftools优化nginx在高并发时的性能的教程(完整版)      如果使用googler开发的google-perftools优化Nginx和MySQL的内存管理,性能将会有一定程度的提升。 特别是对高并发下的服务器,效果更明显。 注意:本教程仅适用于Linux。 下面为大家介绍google-perft.........

[1]nginx设置css/js/jpg/png等图片或静态文件的浏览器缓存时间
    来源: 互联网  发布时间: 2013-12-24

nginx作为web服务器,有时需要让浏览器缓存(Browser Caching) 是为了加速浏览并节约网络资源,浏览器在用户磁盘上对最近请求过的文档进行存储。
 
nginx通过 expires 指令来设置浏览器的Header
语法: expires [time|epoch|max|off]
默认值: expires off
作用域: http, server, location
 
使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。
可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。
epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。
max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。
-1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期
 
例子:
 

代码如下:

#图片缓存30天
location ~.*\.(jpg|png|jpeg)$ 

  expires 30d; 

#js css缓存一小时
location ~.*\.(js|css)?$ 

  expires 1h; 

 

说明:
这是nginx的设置浏览器缓存,如果使用apache,也是可以设置的。
apache也是有cache模块的。


    
[2]使用Nginx第三方模块ngx_slowfs_cache缓存静态文件
    来源: 互联网  发布时间: 2013-12-24

ngx_slowfs_cache:Module adding ability to cache static files。
ngx_slowfs_cache扩充了Nginx的缓存功能,通过 ngx_slowfs_cache 可以实现本地站点静态文件缓存。此功能为低速的存储设备创建快速缓存提供了可能。

通过 ngx_slowfs_cache 将静态文件缓存到要地磁盘后,访问速度将明显改善。而且通常缓存是先放到内存中,从内存中命中自然要比硬盘上命中快很多了。

ngx_slowfs_cache 模块同时也提供了“cache_purge”功能,用于清除指定URL的缓存。
ngx_slowfs_cache 的下载地址:http://labs.frickle.com/nginx_ngx_slowfs_cache/

设置缓存区域
path:存放缓存的路径
levels:缓存文件的目录级数
zone_name:缓存区域的名字
zone_size:内存缓存使用的大小
inactive:如果缓存数据在inactive定义的时间内未被访问,就被移除缓存
max_size:硬盘缓存大小

slowfs_temp_path path [level1] [level2] [level3] (context: http)

ngx_slowfs_cache 的安装
1、下载ngx_slowfs_cache,我们将得到一个文件 ngx_slowfs_cache-1.9.tar.gz
2、解压包 tar zxf ngx_slowfs_cache-1.9.tar.gz 得到目录 ngx_slowfs_cache-1.9
3、执行nginx编译,添加一条编译指令 --add-module=../ngx_slowfs_cache-1.9 即可将ngx_slowfs_cache模块编入nginx,完成的编译参数如:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_slowfs_cache-1.9

如果是已经安装好的nginx,可以通过平滑升级来添加该模块。

4、执行编译安装 make && make install
如果没有意外错误,至此您已经完成了 ngx_slowfs_cache 模块的安装。

ngx_slowfs_cache 配置举例:
 

代码如下:

slowfs_temp_path /usr/local/nginx/temp;(temp与cache路径一直)
slowfs_cache_path /usr/local/nginx/img levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=1g;

server
{
    listen       80;
    server_name  www.test.com;
    index index.html index.htm;
    root  /usr/local/nginx/html;
 
#    location / {
#        slowfs_cache        cache_one;
#        slowfs_cache_key    $uri;
#        slowfs_cache_valid  1d;
#   }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|htm|html)$
{
        slowfs_cache        cache_one;
        slowfs_cache_key    $uri;
        slowfs_cache_valid  1d;
}

#     location ~ /purge(/.*) {
#            allow               127.0.0.1;
#            allow               192.168.0.215;
#            deny                all;
#            slowfs_cache_purge  cache_one $1;
#        }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
   expires      1d;
}

location ~ .*\.(js|css)?$
{
   expires      2h;
}
}

slowfs_cache 可以用loation路径或者文件的类型来定义缓存
两种写法:
A:
     

代码如下:
   location / {
            slowfs_cache        cache_one;
            slowfs_cache_key    $uri;
            slowfs_cache_valid  1d;
       }

B:
     

代码如下:
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|htm|html)$
        {
            slowfs_cache        cache_one;
            slowfs_cache_key    $uri;
            slowfs_cache_valid  1d;
        }

    经测试,写法A只能缓存html等静态文件,无法缓存图片,可以用purge模块删除缓存。
    写法B则图片跟html都能缓存,但无法使用purge模块。(很纠结有木有。。。)

    因为是做图片服务器,所以这里采用写法B,没用purge模块,可以通过脚本来删除指定缓存。
    如下:
   

代码如下:
#vi flush_cache
    #!/bin/bash
    if [ -n "$1" ]
    then
    grep -ra "^KEY" /usr/local/nginx/img/ | grep "$1$" | awk -F[:] '{print $1}' | xargs rm -rf
    else
    echo Operating is wrong
    fi

    要删除http://test.com/img/432.jpg,则执行
    #./flush_cache /img/432.jpg

    缺点是如果缓存很大,删除会比较慢。


    
[3]使用google-perftools优化nginx在高并发时的性能的教程(完整版)
    来源: 互联网  发布时间: 2013-12-24

如果使用googler开发的google-perftools优化Nginx和MySQL的内存管理,性能将会有一定程度的提升。
特别是对高并发下的服务器,效果更明显。
注意:本教程仅适用于Linux。

下面为大家介绍google-perftools的安装,并配置Nginx和MySQL支持google-perftools。

首先,介绍如何优化Nginx:

1,首先下载并安装google-perftools:

注意,如果是64位系统:

那么你需要做:
1)先安装libunwind或者2)在configure时添加--enable-frame-pointers.

那么首先说说如何安装libunwind:
 

代码如下:
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
tar zxvf libunwind-0.99.tar.gz
cd libunwind-0.99/
CFLAGS=-fPIC ./configure --prefix=/usr
make CFLAGS=-fPIC
make CFLAGS=-fPIC install

到这里安装libunwind完成.

如果是使用添加--enable-frame-pointers的方式,先不管,咱们往下走.

下载并安装google-perftools:
 

代码如下:
wget http://google-perftools.googlecode.com/files/google-perftools-1.7.tar.gz
tar xzvf google-perftools-1.7.tar.gz
cd google-perftools-1.7

然后开始配置:
 

代码如下:
./configure --prefix=/usr --enable-frame-pointers
 

在这里注意这步,如果是32位系统,可以不添加 --enable-frame-pointers,如果是64位系统,并且你之前没有安装libunwind,那么你一定要添加这个:--enable-frame-pointers

编译并安装:
 

代码如下:
make
make install

到这里安装google-perftools完成了但未生效,接下来需要使google-perftools生效:
 

代码如下:
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig

注意,这里的双引号是英文的。

到这里安装google-perftools完成.

为了使Nginx支持google-perftools,需要加上--with-google_perftools_module重新编译Nginx,如果不知道如何安装Nginx,可以从这里查看Nginx安装教程.

例如:
 

代码如下:

./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module --with-openssl= \
--with-http_addition_module \
--with-zlib= \
--with-google_perftools_module

make
make install
 

添加Nginx快速重启脚本,请从wpadm.com下载.
到这里安装Nginx完成.

接下来为google-perftools添加线程目录:
 

代码如下:
mkdir /tmp/tcmalloc
chmod 0777 /tmp/tcmalloc

修改/usr/local/nginx/conf/ncing.conf
在pid这行的下面添加
 

代码如下:
#pid   logs/nginx.pid;
google_perftools_profiles /tmp/tcmalloc;

重新启动nginx:
 

代码如下:
service nginx restart

验证是否正在运行:
 

代码如下:
[root@localhost ~]# lsof -n | grep tcmalloc
nginx     13101    www   45w      REG                8,1          0    4014748 /tmp/tcmalloc.13101
nginx     13102    www  47w      REG                8,1          0    4014742 /tmp/tcmalloc.13102
nginx     13103    www   49w      REG                8,1          0    4014746 /tmp/tcmalloc.13103
nginx     13105    www   51w      REG                8,1          0    4014745 /tmp/tcmalloc.13105
nginx     13106    www   53w      REG                8,1          0    4014743 /tmp/tcmalloc.13106
nginx     13107    www   55w      REG                8,1          0    4014749 /tmp/tcmalloc.13107
nginx     13108    www   57w      REG                8,1          0    4014754 /tmp/tcmalloc.13108
nginx     13109    www   59w      REG                8,1          0    4014750 /tmp/tcmalloc.13109
nginx     13110    www   61w      REG                8,1          0    4014747 /tmp/tcmalloc.13110
nginx     13111    www   63w      REG                8,1          0    4014755 /tmp/tcmalloc.13111
nginx     13112    www   65w      REG                8,1          0    4014753 /tmp/tcmalloc.13112
nginx     13113    www   67w      REG                8,1          0    4014756 /tmp/tcmalloc.13113
nginx     13114    www  69w      REG                8,1          0    4014757 /tmp/tcmalloc.13114
nginx     13115    www   71w      REG                8,1          0    4014751 /tmp/tcmalloc.13115
nginx     13116    www   73w      REG                8,1          0    4014744 /tmp/tcmalloc.13116
nginx     13117    www   75w      REG                8,1          0    4014752 /tmp/tcmalloc.13117

我的服务器因为有8核,所以开启了8个Nginx线程,每个线程会有一行类似的记录。
至些,nginx下的google-perftools优化安装完成,供朋友们学习参考。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
编程技术其它 iis7站长之家
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3