Назад | Перейти на главную страницу

Регистрировать входящие запросы в Ubuntu (порты 80, 443)

У нас Tomcat работает на сервере Ubuntu. Он запускает веб-службу, открытую для Интернета.

Иногда бывает внезапный всплеск трафика и он падает. В журналах доступа Tomcat нет ничего необычного. Я предполагаю, что это связано с тем, что некоторые запросы настолько «тяжелые», что они никогда не завершаются и, следовательно, не записываются в журналы доступа Tomcat.

Есть ли способ настроить Ubuntu или сторонний инструмент регистрировать входящие запросы в следующем формате (ниже)?

Дата, время, URL (с параметрами строки запроса), IP-адрес (клиента)

В запросе должна быть одна строка. Каждый запрос должен регистрироваться перед его выполнением. Регистрируются только входящие запросы к портам 80 и 443.

Установите nginx (или Apache) и настройте его как простой обратный прокси перед Tomcat. Ниже приведен пример конфигурации, которую вы можете использовать на виртуальном хосте в nginx. Формат журнала доступа по умолчанию должен предоставить вам необходимую информацию.

server {
  listen 80;
  server_name www.example.org example.org;

  location /context/ {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://tomcat-server:8080/context/;
  }

  access_log /var/log/nginx/www.example.org-access.log;
  error_log /var/log/nginx/www.example.org-error.log;
}

Изменить: даже если Tomcat не смог обработать запрос, он должен быть зарегистрирован в nginx (а также в Tomcat).

2 возможных решения для вас.

  1. Настройте squid или аналогичный для работы в качестве обратного прокси, найдите «обратный прокси-сервер squid». предостережение: у вас могут возникнуть проблемы с совместимостью, но я не эксперт.
  2. Можно использовать iptables для регистрации трафика, поступающего на ваш сервер. Увидеть LOG target на странице руководства iptables. предостережение: iptables НЕ поддерживает http. Вы получите всю необходимую информацию, кроме запрошенного URL.