localhost:3000
?$ cat /etc/nginx/sites-enabled/chupasaurus
# Это типа «костыль»
server {
listen 127.0.0.1:3001;
location / {
root /var/www/html;
try_files @upstream $uri =404;
}
location @upstream {
proxy_pass http://127.0.0.1:3000;
proxy_intercept_errors on;
recursive_error_pages on;
error_page 404 = @local;
}
location @local {
try_files $uri =404;
}
}
# Это типа сайт
server {
listen 127.0.0.1:3000;
return 200 'OK from 3000\n';
}
$ cat /var/www/html/wtf.html
Hello from wtf.html
$ curl localhost:3000/wtf.html
OK from 3000
$ curl localhost:3001/wtf.html
Hello from wtf.html
$ curl localhost:3001/wtf2.html
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.14.0 (Ubuntu)</center>
</body>
</html>
Проверяет существование файлов в заданном порядке и использует для обработки запроса первый найденный файл [...] В случае, если ни один файл не найден, то делается внутреннее перенаправление на uri, заданный последним параметром.
[...]
Последний параметр может также указывать на именованный location, как в примерах ниже. С версии 0.7.51 последний параметр может также быть кодом