Веб-сервер должен прекратить обработку после истечения времени ожидания прокси - PullRequest
0 голосов
/ 08 февраля 2020

Мое веб-приложение находится за прокси nginx. Nginx настроен на отправку клиентам ответа о превышении времени ожидания для запросов старше минуты. В серверной части запросы на тайм-аут продолжают обрабатываться. У нас есть tomcat в качестве веб-сервера, я не смог найти конфигурацию для тайм-аута запросов, которые были созданы задолго до этого.

Я решил установить фильтр для проверки таких запросов. Я собираюсь протестировать эту конфигурацию, но все еще не уверен, что это лучший вариант.

Вот код фильтра

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
    if (request instanceof HttpServletRequest) {
        HttpServletRequest httpServletRequest = (HttpServletRequest)request;
        long timeInMillis = System.currentTimeMillis() - httpServletRequest.getSession().getLastAccessedTime();
        if( timeInMillis> 60000){
           HttpServletResponse  httpServletResponse=  (HttpServletResponse)response;
           httpServletResponse.sendError(HttpServletResponse.SC_REQUEST_TIMEOUT);
        }else {
            filterChain.doFilter(request, response);
        }

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...