实战Nginx高性能web服务器笔记(5)

时间:2021-08-26 19:46:56

一.常用配置详解(2)

1.Nginx的自动列目录配置

 我们经常看见一些开源软件的下载页面是能够自动列目录的。
要实现这一功能,前提条件是当前目录下不存在用index指令设置的默认首页文件。如果须要在一虚拟主机的location / {......}目录控制中配置自动列目录,只需加上如下代码:
location / {
 autoindex on;
}
另外,还有两项和自动列目录相关的指令,分别是:
autoindex_exact_size [ on|off ]
设定索引时文件大小的单位(B、KB、MB、GB)
autoindex_localtime [ on|off ]
开启以本地时间来显示文件时间的功能。默认关闭(GMT时间)。

2.Nginx的浏览器本地缓存设置

浏览器缓存(Browser Caching)是为了加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当浏览者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。缓存的方式节约了网络资源,提高了网络的效率。
浏览器缓存可以通过expires指令输出Header头来实现,expires指令的语法如下:
语法:expires [time|epochlmaxloff]
默认值:expires off
作用域:http,server,location
用途:使用本指令可以控制HTPP应答中的"Expires" 和 "Cache-Control" 的Header头信息(起到控制页面缓存的作用)。
epoch 指定"Expires"的值为1 January,1997,00:00:01 GTM.
负数:Cache-Control:no-cache.
正数或零:Cache-Control:max-age=## 是你指定的时间的秒数。
“off”表示不修改Expires和Cache-Control的值
实战Nginx高性能web服务器笔记(5)
实例:对常见格式的图片、flash文件在浏览器本地缓存30天,对js、css文件在浏览器本地缓存12个小时。
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        access_log off;
    }

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

附:每天00:00定时切割日志文件脚本

[root@localhost logs]# vi /www/wwwlogs/cut_nginx_log.sh
[root@localhost logs]# crontab /www/wwwlogs/cut_nginx_log.sh 
[root@localhost logs]# crontab -l
#!/bin/bash
# This script run at 00:00

#The Nginx logs path
logs_path = "/www/wwwlogs/"

00 00 * * * mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/(date -d "yesterday" +"%m")/mv ${logs_path}access.log $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log kill -USR1 `cat /www/server/nginx/logs/nginx.pid`  
[root@localhost logs]#