Как я могу заставить свой сервлет вызвать ошибку 404, которая будет перенаправлена моим прокси Nginx?Получение Servlet для сброса ошибки 404 через обратный прокси Nginx?
Он отлично работает для 404-х, брошенных Nginx. Но если запрос проксирован до Tomcat, страница с ошибкой 404 происходит от Tomcat, а не от Nginx.
Могу ли я как-то вернуть ошибку 404, которая затем подхвачена перенаправлением Nginx? Или мне нужно настроить страницу параллельной 404 ошибки в web.xml?
я следующие включены в мой Nginx конфигурации:
location ~ \.do$ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 = @page-not-found;
location @page-not-found {
rewrite .* /search?status=page-not-found permanent;
}
и сервлета, как:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String handle = request.getParameter("handle");
Page page = pageDao.getPageByHandle(handle);
if(page.getId()!=null){
request.setAttribute("page", page);
request.getRequestDispatcher("/site/page.jsp").forward(request , response);
}
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}