Примечание. Я прочитал несколько вопросов и ответов по SO, ServerFault и т. д., но ни один из ответов, похоже, не работает.
Запуск веб-сервера AWS ec2 Ubuntu (v20.04) с базовой конфигурацией nginx (v1.18). Однако место расположения
директива для /a-пользовательский путь
возврат кода состояния http 200 никогда не обрабатывается и/или обрабатывается и игнорируется.
Вот конфиг:
сервер {
слушать 80 default_server;
слушать [::]:80 default_server;
имя сервера _;
местоположение / пользовательский путь {
доступ_лог выключен;
add_header Content-Type text/plain;
вернуть 200 'ОК';
}
журнал_доступа /var/log/nginx/unknown.log;
вернуть 412;
}
местоположение / пользовательский путь
никогда не возвращает статус 200; он всегда проваливается до ответа 412. Я пробовал различные директивы местоположения, такие как:
местоположение / пользовательский путь
местоположение /a-пользовательский-путь/
location = /a-пользовательский-путь
location = /a-пользовательский-путь/
Тем не менее, все они имеют одинаковое поведение провала в 412
отклик.
Вопрос
Как я могу создать собственный путь к местоположению, который возвращает ответ 200, а все остальные запросы возвращают ответ 412?
Изменить - исправленная и рабочая конфигурация
Для всех, кто находит этот вопрос, вот окончательное рабочее решение, основанное на принятом ответе:
сервер {
слушать 80 default_server;
слушать [::]:80 default_server;
имя сервера _;
# все, кроме '/a-custom-path', получает ответ 412
место расположения / {
вернуть 412;
}
местоположение / пользовательский путь {
вернуть 200 'ОК';
доступ_лог выключен;
add_header Content-Type text/plain;
}
журнал_доступа /var/log/nginx/unknown.log;
}