nginx - формат журнала не применяется в модуле OpenShift - PullRequest
0 голосов
/ 30 сентября 2019

Благодаря ответу Ник на , выполняющем модуль nginx в качестве конечной точки завершения SSL , я смог успешно запустить Nginx на модуле OpenShift. Однако я не вижу журналы этого модуля в формате, определенном в этом файле конфигурации.

nginx.conf

events { }

http {
    log_format main '$time_iso8601 - $remote_addr - "$http_user_agent" - "$request" - $request_id '
    '- $status - $body_bytes_sent - $request_time ';

    upstream point1 {
        server point1-os.point1-os.svc:8080;
    }
    upstream point2 {
        server point2-os.point2-os.svc:8080;
    }

    server {
        listen 8080;
        location /point1/ {
            proxy_set_header X-Request-Id $request_id;
            proxy_pass http://point1/;
        }
        location /point2/ {
            proxy_set_header X-Request-Id $request_id;
            proxy_pass http://point2/;
        }        
    }
}

Вместо этого я вижу журналы, как показано ниже:

172.17.0.1 - - [30/Sep/2019:23:48:02 +0530] "POST /point2/processes HTTP/1.1" 200 51 "-" "PostmanRuntime/7.17.1"
172.17.0.1 - - [30/Sep/2019:23:52:37 +0530] "GET /point2/process/resource1 HTTP/1.1" 400 223 "-" "PostmanRuntime/7.17.1"
172.17.0.1 - - [30/Sep/2019:23:53:11 +0530] "DELETE /point2/process/resource1 HTTP/1.1" 200 58 "-" "PostmanRuntime/7.17.1"
172.17.0.1 - - [30/Sep/2019:23:53:15 +0530] "GET /point2/process/resource1 HTTP/1.1" 200 66 "-" "PostmanRuntime/7.17.1"

Принимая во внимание, что ожидаемый журнал должен был быть в следующем порядке:

  • Отметка времени
  • Удаленный адрес
  • Пользовательский агент HTTP, например PostmanRuntime/7.17.1
  • Запрос глагола, например GET, POST и т. Д.
  • Идентификатор запроса - автоматически вводится Nginx - не просматривается и критически требуется
  • Состояние
  • Отправлено байтов
  • Время запроса

1 Ответ

0 голосов
/ 30 сентября 2019

Вы создаете log_format с именем main. Вам все еще нужно применить этот формат к журналам доступа, что-то похожее на следующее должно работать

log_format main '$time_iso8601 - $remote_addr - "$http_user_agent" - "$request" - $request_id - $status - $body_bytes_sent - $request_time ';
access_log /var/log/nginx/access.log main;
...