2017-02-15 37 views
1

我使用nginx的版本:nginx的/ 1.11.8Nginx的泊坞窗(13:权限被拒绝),同时登录请求安装的卷

我的搬运工文件看起来像:

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 

我使用变量我的访问日志名称如下所示。在没有安装到主机上的目录的情况下运行时,这可以正常工作并生成日志。

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; 
} 

我的主机的日志目录的所有者:史蒂夫组:原木

如果我从访问日志名称中删除变量,然后将它正确地记录到主目录即

access_log /var/log/nginx/nginx.novars.log logs; 

我是忽略了一些显而易见的事情,让它使用变量来工作?

+0

第4行和第5行为不同所有者授予相同地点的权限,是否有意? – shlomoa

回答

0

原来是位置块内导致问题的if语句。这工作,并允许我按日期旋转我的日志文件。

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; 
    } 
    } 
}