2017-02-15 2 views
1

I nginx Version bin mit: nginx/1.11.8Nginx Docker (13: Zugriff verweigert), während montiert Volumen Anmeldung Anfrage

Meine Docker-Datei wie folgt aussieht:

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 

ich Variablen verwende für Meine Zugangsprotokollnamen wie unten gezeigt. Wenn das Programm ohne Installation in ein Verzeichnis auf dem Host-Rechner läuft, funktioniert dies einwandfrei und die Protokolle werden erstellt.

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

Mein Host-Protokollverzeichnis ist Inhaber: steve Gruppe: logs

wenn ich die Variablen aus dem Zugriffsprotokoll Namen entfernen dann meldet es richtig an den Host-Verzeichnis, zB

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

Am i etwas grandios zu übersehen, um dies mithilfe von Variablen zum Laufen zu bringen?

+0

Die Zeilen 4 und 5 geben Berechtigungen für den gleichen Ort für einen anderen Besitzer, ist dies beabsichtigt? – shlomoa

Antwort

0

Es stellte sich heraus, dass es die If-Anweisung innerhalb des Standortblocks war, die das Problem verursachte. Das funktioniert und erlaubt mir, meine Logdateien nach Datum zu rotieren.

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