nginx常用配置-VII
摘要
书接上回,本文介绍下静态网页的一些内容。
由于单独讲缓存部分的配置,文章较少,故增加了一节日志格式的解析和说明。
http server部分
缓存静态资源
在http请求后,前端会有一些资源会缓存在用户的机器上,在一定的时间内,用户再次访问到相同的数据的时候,就可以从用户的前端资源中获取。此时,http请求返回的状态码是304,用户就可以在本地缓存中进行查找相应的数据。(从用户的内存中或者从硬盘中查找。)
那要如何配置一个资源什么过期。上配置。
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 10d;
}
上述配置,就是表示,以gif,jpg等结尾的图片文件,有效期是10天,访问一次后,10天内不需要再次从服务器上进行数据获取。
此配置比较简单,如果您不太理解,则可以直接拷贝当前的配置,当前配置主要是以对应后面配置的字符结尾的请求,比如http://b.zf520.net.cn/a.gif 或者http://b.zf520.net.cn/b.jpeg等等类似的请求。您可以增加其他类型的请求。比如js或css
location ~ .*\.(js|css)$ {
expires 10h;
}
日志格式配置
http请求到我们的服务器后,我们一般都想了解用户是从哪里访问到我们的机器,以及使用的是桌面应用,移动设备,用的是什么样的浏览器来对我们的系统进行的访问,方便我们对用户的地区,使用系统,使用的浏览器等等数据进行分析,当然,更多的分析的是访问的地址是什么。
那么,就需要我们来看以下日志的格式。
nginx默认的日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
这个格式默认的,不需要用户自己配置,默认存储的位置是nginx同级目录下logs/access.log文件下。
我从个人访问的nginx上拿一段日志来给大家看下。
127.0.0.1 - - [29/Mar/2023:08:56:20 +0800] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
可以和我们的配置对应下:
127.0.0.1 是$remote_addr字段,表示用户访问的ip地址。
两个 -
直接的空格为$remote_user ,我们没有配置授权及用户信息,所以,该值为空。
[]
之间的为本地时间, 具体值为 29/Mar/2023:08:56:20 +0800
""
为请求的URL地址以及请求的方法(POST/GET/DELETE/OPTIONS等)。 “GET / HTTP/1.1”
403 表示请求返回状态码,是$status。
555 是返回的body的发送字节数 $body_bytes_sent.
此后的部分是用户的请求头,关于用户的user_agent,一般是用户操作系统,浏览器核心,浏览器类型及版本$http_user_agent 。
最后的$http_x_forwarded_for之前的文章讲过,主要是代理IP的参数,本次请求无代理,所以,当前值为空。
后续
本文主要是介绍了nginx页面或数据的缓存。在系统运行期间,不仅要关注功能的运行,也要关注下系统的日志,以方便分析系统运行的情况或状态。敬请期待后续。