Nginx отправляет 404 на бэкэнд

nginx

Nginx – отличный веб-сервер, но он также замечателен как обратный прокси, и  это отлично когда вы делаете обе вещи одновременно.

Если вы хотите, чтобы Nginx выполнял роль веб-сервера, но если есть ошибка, ошибка 404 вы можете передать вызов Apache или любому другому серверу.

location / { index index.html try_files $uri $uri/ @apache; }

Это скажет Nginx, чтобы он обслуживал все страницы и папки, которые соответствуют файлу или папке на диске, но если он не может найти его, он перейдет на @apache

И @apache выглядит так:

location @apache {
proxy_pass http://1.2.3.4:81;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Просто измените IP и порт в директиве proxy_pass, чтобы соответствовать вашим требованиям.

я обнаружил, что для того, чтобы Nginx отправил все ошибки «File Not Found 404» на бэкэнд, вам также нужно добавить эту строку в блок server

error_page 404 = @apache;

Финальный блок может выглядеть так:

server {listen 80;root /var/www;
index index.html;
server_name www.garron.me;
error_page 404 = @apache;

location / {try_files $uri $uri/ @apache;}

location @apache {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache wwwgarron; proxy_cache_valid 200 301 302 5s;
proxy_cache_use_stale updating error timeout invalid_header http_500;
proxy_ignore_headers Cache-Control Expires;
}
}
Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!