Я изменил файл nginx.tmpl
, который используется для генерации /etc/nginx/conf.d/default.conf
.
Я добавил строку, чтобы везде появилось access_log
.Например:
access_log /var/log/nginx/access.log vhost;
access_log syslog:server=111.222.111.222:1025 custom;
Я определил формат custom
рядом с другим форматом.Например.
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
log_format custom '$remote_addr - $remote_user [$time_local]'
'"$request" $status $body_bytes_sent'
'"$http_referer" "$http_user_agent"'
'"$request_time" "$upstream_connect_time"';
А затем смонтировать nginx.tmpl
в контейнер.например.
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./config/nginx.conf:/etc/nginx/nginx.conf
- ./nginx.tmpl:/app/nginx.tmpl
- ./logs:/var/log/nginx
Чтобы проверить, перезапустите nginx-proxy, зайдите в контейнер nginx-proxy и посмотрите на сгенерированный /etc/nginx/conf.d/default.conf
.
Это идея.Было бы неплохо иметь возможность указать где-нибудь URL-адрес системного журнала вместо того, чтобы вручную копировать вставку в nginx.tmpl
.
. Обратите внимание, что это работает, несмотря на то, что Ян говорит о том, что системный журнал не работает внутри контейнера.Не знаю почему, это просто работает ™