NGINX配置文件列出功能访问服务日志
一.我们在linux服务器上运行jar等服务时,开发同事需要去查看服务产生的日志去检查bug,然而服务器涉及安全问题一般不会允许开发同事直接登陆服务器去看日志,这时一般是搭建elk日志分析平台或者finderweb,对于有些公司来说,项目比较小并且服务器资源紧张,搭建一套日志系统耗时耗力,也不实用,因此还有一个方法是借助nginx的文件目录访问功能,开启autoindex on 功能实现日志下载或在线查看。
编辑nginx.conf文件,在server模块中配置location
server {
listen 80;
server_name localhost;
location /monitorlog {
alias /data/bzc/log/; ##日志文件所在目录
sendfile on;
autoindex on; # 开 启 目 录 文 件 列 表
autoindex_exact_size on; # 显 示 出 文 件 的 确 切 大 小 , 单 位 是 bytes
autoindex_localtime on; # 显 示 的 文 件 时 间 为 文 件 的 服 务 器 时 间
charset utf-8; # 避 免 中 文 乱 码
}
这样配置访问链接后点击日志文件会默认下载,当我们想要在线浏览时需要编辑mime.types文件,按照网上大部分的教程,会在上面插入text/log log;
text/html html htm shtml;
text/css css;
text/log log;
text/xml xml; ```
然而按照这样配置你会发现,在线浏览的时候如果你的日志中有中文,中文会乱码。
正确的方式是在mime.types插入text/plain log;
text/html html htm shtml;
text/css css;
text/plain log;
text/xml xml;
二. 这样配置之后文件可以在线查看了,不过访问链接时不需要代码便可以直接查看到日志内容,日志中会有私密的内容,因此我们还需要配置用户权限访问。
yum install -y httpd-tools
htpasswd -c /data/bzc/plugin/nginx/logpass.db loguser
cat logpass.db ##查看是否创建成功
loguser:$apr1$IfKxaw2g$.Tn9BDqTm9nj7PLNs3EWa0s3EWa0
编辑nginx.conf配置文件vim nginx.conf
location /monitorlog {
alias /data/bzc/log/; ##日志文件所在目录
sendfile on;
autoindex on; # 开 启 目 录 文 件 列 表
autoindex_exact_size on; # 显 示 出 文 件 的 确 切 大 小 , 单 位 是 bytes
autoindex_localtime on; # 显 示 的 文 件 时 间 为 文 件 的 服 务 器 时 间
charset utf-8; # 避 免 中 文 乱 码
auth_basic "Restricted"; ##添加用户账号权限
auth_basic_user_file data/bzc/plugin/nginx/logpass.db; ##添加用户账号权限
}
重启nginx