觉得博客使用百度统计会降低访问速度并且不够「自由」,于是又启用了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; 
	}