网站首页 > 技术教程 正文
上一篇文章手把手教程:使用Docker创建Nginx,并部署Vue项目我们介绍了如何使用Docker创建Nginx,并部署Vue项目。评论区有人问Docker nginx如何实现日志分割。
这篇文章,我们专门来介绍一下Docker nginx日志分割(按天或按小时分割日志)。
为了阅读方便,我们重新介绍使用Docker创建Nginx的步骤,和上一篇文章相比有一些小的修改。
准备工作
- 拉取镜像
拉取nginx镜像到本地:
docker pull nginx:latest
- 创建挂载目录
mkdir -p /usr/local/nginx/{conf,html,logs,conf.d}
- conf : 存放外置nginx配置文件
- html : 存放Vue包
- logs : 存放nginx日志文件
- conf.d : 存放具体项目的nginx配置文件
- 将打包好的Vue项目包(一个名为dist的文件夹)放到 /usr/local/nginx/html 目录下。
[root@192 html]# ls -l /usr/local/nginx/html/
总用量 4
drwxrwxr-x. 9 admin admin 250 3月 7 17:17 dist
- 在/usr/local/nginx/conf下创建 nginx.conf 文件,作为外置配置文件使用。
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- 在/usr/local/nginx/conf下创建 log_format.conf文件,作为日志分割配置文件使用。
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") {
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
}
access_log /var/log/nginx/${server_name}_${year}-${month}-${day}-${hour}_access.log main;
如上配置,可以实现日志的按小时分割,生产环境一般改为按天分割即可。
注意:此处会按小时生成日志文件,Nginx容器需要有文件生成的权限,nginx.conf 的第一行user 后不能为nginx。必须改为:
user root
- 创建项目配置文件
在nginx.conf中我们可以看到 include /etc/nginx/conf.d/*.conf 。Nginx会扫描这个目录下所有以.conf结尾的文件。
我个人习惯在nginx.conf设置全局配置,在/etc/nginx/conf.d/下创建单独的项目配置文件。这样更清晰一些。
在/usr/local/nginx/conf.d 目录下创建vip.conf
[root@192 nginx]# vim conf.d/vip.conf
server {
listen 80;
server_name vip;
include log_format.conf;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
- include: 引入前面我们定义的日志分割配置文件 log_format.conf
- root:表示匹配成功之后进入的目录,我们创建容器后会把/usr/local/nginx/html/dist 目录下的文件拷贝到容器的/usr/share/nginx/html目录下。
- index:表示默认的首页面
- 创建容器
docker run -d -p 80:80 --name nginx80 --restart=always \
-v /usr/local/nginx/html/dist/:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/logs/:/var/log/nginx \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/conf/log_format.conf:/etc/nginx/log_format.conf nginx:latest
如果返回一长串字符即为成功。
参数说明:
- -d 后台运行
- -p 设置端口映射 宿主机端口:容器端口
- --name 设置容器别名
- --restart=always 设置容器开机启动
- -v 数据卷映射 宿主机目录:容器目录。这样方便我们管理容器配置文件及日志文件
效果验证
- 浏览器访问Vue项目
说明部署Vue前端项目成功
- 查看日志目录
[root@192 logs]# ll
总用量 8
-rw-r--r--. 1 root root 0 3月 9 11:08 access.log
-rw-r--r--. 1 root root 291 3月 9 11:08 error.log
-rw-r--r--. 1 root root 2110 3月 9 11:08 vip_2020-03-09-03_access.log
可以看到,产生了vip_2020-03-09-03_access.log,日志分割也成功了。
猜你喜欢
- 2024-10-14 使用分享 | minio 远程客户端mc备份nginx access日志
- 2024-10-14 Filebeat配置顶级字段Logstash在output输出到Elasticsearch使用
- 2024-10-14 详解日志采集工具Logstash 安装部署及常用配置
- 2024-10-14 rsyslog(手工配置)配置文件教程讲解
- 2024-10-14 分享一个实用脚本获取access.log的请求url和查其中最耗时的接口
- 2024-10-14 nginx 日志分析之 access.log 格式详解
- 2024-10-03 领导:如何使用GoAccess构建实时日志分析系统
- 2024-10-03 SpringCloud 日志在压测中的二三事
- 2024-10-03 基于nginx,kafka,zookeeper的Log收集系统
- 2024-10-03 goaccess 分析nginx log(nginx access配置)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)