Notă: am citit mai multe întrebări/răspunsuri despre SO, ServerFault etc... dar niciunul dintre răspunsuri nu pare să funcționeze.
Rularea unui server web AWS ec2 Ubuntu (v20.04) cu o configurație de bază nginx (v1.18). Însă Locație
directivă pentru /a-custom-path
returnarea unui cod de stare http de 200 nu este niciodată procesată și/sau este procesată și ignorată.
Iată configurația:
Server {
asculta 80 default_server;
asculta [::]:80 default_server;
numele serverului _;
locație /a-custom-path {
access_log off;
add_header Content-Type text/plain;
returnează 200 „OK”;
}
access_log /var/log/nginx/unknown.log;
întoarcere 412;
}
The locație /a-custom-path
nu returnează niciodată un statut 200; se încadrează întotdeauna în răspunsul 412. Am încercat diverse directive de locație, cum ar fi:
locație /a-custom-path
locație /a-custom-path/
locație = /a-custom-path
locație = /a-custom-path/
Cu toate acestea, toți au același comportament de a cădea la 412
raspuns.
Întrebare
Cum pot crea o cale de locație personalizată care returnează un răspuns 200 și toate celelalte solicitări returnează un răspuns 412?
Editare - Configurație revizuită și de lucru
Pentru oricine altcineva care găsește această întrebare, iată soluția finală de lucru bazată pe răspunsul acceptat:
Server {
asculta 80 default_server;
asculta [::]:80 default_server;
numele serverului _;
# totul cu excepția „/a-custom-path” primește un răspuns 412
Locație / {
întoarcere 412;
}
locație /a-custom-path {
returnează 200 „OK”;
access_log off;
add_header Content-Type text/plain;
}
access_log /var/log/nginx/unknown.log;
}