Для настройки пользовательского формата логирования в Nginx, используя Docker Compose, необходимо сделать несколько шагов:
1. Создайте файл docker-compose.yaml, чтобы определить сервис Nginx и настроить его:
version: '3' services: nginx: image: nginx ports: - 80:80 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/logs:/var/log/nginx
2. Создайте директорию nginx в текущей директории и в ней создайте две поддиректории: conf.d и logs. Первая служит для хранения файлов конфигурации Nginx, а вторая - для хранения лог-файлов:
$ mkdir nginx $ cd nginx $ mkdir conf.d $ mkdir logs
3. Создайте файл конфигурации Nginx с именем custom.conf в директории nginx/conf.d:
$ cd nginx/conf.d $ touch custom.conf
4. Откройте файл custom.conf и добавьте следующую конфигурацию:
http { log_format custom '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; server { listen 80; server_name localhost; access_log /var/log/nginx/access.log custom; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
5. В файле docker-compose.yaml добавьте описание volumes для сервиса Nginx, чтобы привязать директорию с нашим файлом конфигурации:
version: '3' services: nginx: image: nginx ports: - 80:80 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/logs:/var/log/nginx
6. Остановите и удалите существующий контейнер Nginx:
$ docker-compose down
7. Запустите контейнер Nginx с использованием Docker Compose:
$ docker-compose up -d
8. Теперь вы можете отправлять запросы к вашему контейнеру Nginx и проверять лог-файлы в директории nginx/logs. Формат пользовательского журнала, указанный в нашем конфигурационном файле, будет использоваться для записи логов в файл access.log.
Надеюсь, это помогло вам настроить пользовательский формат логирования в Nginx с использованием Docker Compose. Обращайтесь, если у вас возникнут еще вопросы!