Nginx日志调试与缓存
觉得博客使用百度统计会降低访问速度并且不够「自由」,于是又启用了Nginx的日志(没错我以前关闭的),由此带来了一系列的事情
日志的启用与关闭
操作文件 : /etc/nginx/sites-enabled/default
Nginx日志关闭
关于Nginx日志如何关闭,网上的教程总是这样一句话,让人摸不着头脑:
access_log off;
其实是这样的:Nginx的配置放在**/etc/nginx/目录下的sates-enabled/default或者是直接写在nginx.conf里面,一个端口服务写一个server{}**
因此我们需要在80端口或者443端口里面修改配置,大概如下
server {
listen 80;
server_name sunmker.cn;
……
access_log off;
……
}
Nginx日志开启
可别想当然的认为,开启Nginx日志只需要把off 改成on了,可别像我这么憨憨,这是不行的。我们需要为access_log添加日志存放位置,大概如下
server {
listen 80;
server_name sunmker.cn;
……
access_log /var/log/nginx/access.log;##这个位置你可以随便放,但是要有,不能写on
……
}
日志自定义配置
我们终于开启了日志,兴冲冲的去看access.log,发现里面有许多我们不需要的东西,其实Nginx支持使用log_format来自定义access.log的配置,但我们有两个需要注意的事项。
首先,需要注意这串代码的存放位置,它应该与server{}同级别。即存放于http{}与server{}之间,不能放到server{}里面。
其次是需要注意log_format里面的代码需要换行,要不然会报错,可以在引号中加入自己的字符,关于 time_iso8601这些变量,具体可以访问Nginx网站查看
PS. 我也见过一行方多个的,但是用双引号,我觉得有点烦,还是这样比较舒服。如果有更好的办法,欢迎留言指正 大概如下
log_format name "$time_iso8601 -- "
"$status -- "
"$request_uri -- "
"$http_user_agent -- "
"$remote_addr";
server {
……
access_log /var/log/nginx/access.log name;
……
}
变量 | 解释 |
---|---|
time_iso8601 | 时间 |
status | http状态码 |
request_uri | 访问的页面 |
http_user_agent | 用户标识User-Agent |
remote_addr | 用户ip |
静态文件添加缓存
有些文件不需要每次都请求,比如css、js文件和图片以及网站图标,需要在server{}内部操作,大概如下:
location ~.*\.(jpg|png|jpeg|svg|js|css)$
{
expires 90d;
}
location = /favicon.ico {
expires 180d;
}