J'ai une configuration multi-conteneurs dans AWS. J'essaie de suivre cette procédure : http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-serverlogs.html
Cependant (avec la dernière version de Nginx - 1.9.12), dès que j'essaie d'utiliser des variables dans le nom du fichier, des erreurs apparaissent dans le journal des erreurs et le fichier lui-même n'est pas créé.
error.log :
2016/03/10 05:57:38 [error] 6#6: *1 testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request, client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /v1/service?staus=ok HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:8088/v1/service?staus=ok", host: "xxx.xxx.xxx.xxx"
Cette configuration ne fonctionne pas :
upstream app_v1 {
server app_v1:8088;
}
map $http_upgrade $connection_upgrade {
default "upgrade";
"" "";
}
log_format healthd '$msec"$uri"'
'$status"$request_time"$upstream_response_time"'
'$http_x_forwarded_for';
server {
listen 80;
server_name localhost;
gzip on;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
}
access_log /var/log/nginx/access.log main;
access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
location ~* ^/ {
proxy_pass http://app_v1;
proxy_redirect off;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Et celui-ci fonctionne bien :
upstream app_v1 {
server app_v1:8088;
}
map $http_upgrade $connection_upgrade {
default "upgrade";
"" "";
}
log_format healthd '$msec"$uri"'
'$status"$request_time"$upstream_response_time"'
'$http_x_forwarded_for';
server {
listen 80;
server_name localhost;
gzip on;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
access_log /var/log/nginx/access.log main;
access_log /var/log/nginx/healthd/application.log healthd;
location ~* ^/ {
proxy_pass http://app_v1;
proxy_redirect off;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Cependant le service healthd (améliorer la santé) recherche un fichier formaté :
/var/log/nginx/healthd/application.log.$year-$month-$day-$hour
Je peux reproduire cela localement en utilisant docker-compose. Je ne suis pas sûr de ce qui me manque ici.
Maxime
0 votes
Même si ça ne résout probablement pas votre cas,
mkdir /etc/nginx/html
devrait supprimer l'erreur que vous mentionnez.