首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nginx docker (13:权限被拒绝)记录挂载卷请求

Nginx docker (13:权限被拒绝)记录挂载卷请求
EN

Stack Overflow用户
提问于 2017-02-15 19:12:21
回答 1查看 1.1K关注 0票数 1

我使用的是nginx版本: nginx/1.11.8

我的docker文件如下所示:

代码语言:javascript
运行
复制
FROM nginx
COPY website /usr/share/nginx/html/website/
RUN chown -R nginx /usr/share/nginx/html
RUN chown -R nginx /var/log/nginx/
EXPOSE 80

我使用变量作为我的访问日志名称,如下所示。在不挂载到主机上的目录的情况下运行时,可以很好地工作,并生成日志。

代码语言:javascript
运行
复制
location / {
  try_files $uri /index.html;
  if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; }
  access_log /var/log/nginx/nginx.$hostname.$year-$month-$day.log logs;
}

我的主机日志目录是owner:steve group:logs

如果我从访问日志名称中删除变量,那么它会正确地记录到主机目录,即

代码语言:javascript
运行
复制
access_log /var/log/nginx/nginx.novars.log logs;

我是不是遗漏了一些显而易见的东西来使用变量来让它工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 22:03:33

原来是location块内部的if语句导致了这个问题。这是可行的,并允许我按日期轮换日志文件。

代码语言:javascript
运行
复制
http {
  include /etc/nginx/conf/*.conf;
  include /etc/nginx/mime.types;

server {
  listen       80 default_server;
  root   /usr/share/nginx/html/;
  underscores_in_headers on;

  if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; }

    location / {
      index  index.html index.htm;
      try_files $uri $uri/ /index.html$query_string;
      access_log /var/log/nginx/nginx.agent-ux.$hostname.$year-$month-$day.log logs;
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42247731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档