Nu cred că răspunsul @Klamberext răspunde cu adevărat la întrebare. Adică, serverul web nginx are un server implicit concept. Pagina oficială de documentație pe acest subiect poate fi găsită aici: Cum procesează nginx o solicitare. Cu toate acestea, unul dintre blocurile de server care ascultă pe o combinație de interfață de rețea/port va acționa întotdeauna ca cel implicit. Dacă nu specificați acel bloc de server în mod explicit, acesta va fi primul bloc de server din configurația dvs. Asta înseamnă că serverul tău se blochează cu nume_server app.example.com www.app.example.com;
linia va fi blocul implicit al serverului pentru orice solicitare care vine pe portul 443 TCP, deservind orice solicitare unde un HTTP Gazdă
antetul nu se va potrivi exemplu.com
sau www.example.com
(sau dacă nu va exista Gazdă
antet deloc).
După cum a spus deja @Klamberext, o practică obișnuită este de a defini un bloc de server stub pentru a captura toate cererile în care Gazdă
Antetul HTTP nu se potrivește cu niciunul dintre domeniile pe care le deserviți. Puteți vedea un exemplu la acest Așa răspuns. De obicei, un astfel de bloc de server conține întoarcere 444;
declarație care este un cod special de returnare nginx pentru a închide imediat conexiunea.Cu toate acestea, se pare că aveți nevoie de ceva opus și veți avea nevoie de două blocuri de server pentru a realiza acest lucru, deoarece, după cum s-a spus deja, un singur bloc de server care ascultă pe portul TCP 8080 va acționa ca cel implicit, indiferent care este Gazdă
antetul setat la:
Server {
asculta 8080;
server_name example.com www.example.com app.example.com www.app.example.com;
întoarcere 444;
}
Server {
asculta 8080 default_server;
... configurația dvs. aici
}
Ca alternativă, puteți verifica Gazdă
valoarea antetului din blocul serverului dvs., de exemplu pentru a bloca un exemplu.com
domeniul și oricare dintre subdomeniile acestuia:
Server {
asculta 8080;
if ($http_host ~ \.?example\.com$) { returnează 444; }
... configurația dvs. aici
}