Ho un'istanza di nginx in esecuzione che serve diversi siti Web. Il primo è un messaggio di stato sull'indirizzo IP del server. Il secondo è una console di amministrazione su admin.domain.com
. Questi funzionano alla grande. Ora vorrei che tutte le altre richieste di dominio passassero a un singolo index.php
- Ho un sacco di domini e sottodomini e non è pratico elencarli tutti in una configurazione di nginx.nginx nome_server jolly o catch-all
Finora ho provato a impostare server_name
su *
ma non è riuscito come carattere jolly non valido. *.*
funziona finché non aggiungo gli altri blocchi del server, quindi suppongo che sia in conflitto con loro.
C'è un modo per eseguire un blocco server catch-all in nginx dopo che sono stati definiti altri siti?
N.B. Non sono uno spammer, questi sono veri e propri siti con contenuti utili, sono semplicemente alimentati dallo stesso CMS da un database!
Ha funzionato perfettamente - molte grazie. Non potevo usare 'server_name _;' per la pagina di stato sull'indirizzo IP, dovevo specificare 'server_name x.x.x.x' ma va bene! – Tak
L'aggiunta di 'default_server' non sembra funzionare su nginx 1.4.6 che è attualmente l'ultima versione su Ubuntu 14.04 ... Quando lo aggiungo, il comando' configtest' restituisce un errore, e il riavvio del server non funziona o. Ho provato la stessa configurazione sul mio server con Debian jessie, che ha nginx 1.6.2, e funziona perfettamente. Quindi prova un'altra versione se sei su 1.4.6 ... – Nicomak
Side note per HTTPS: la direttiva '' 'default_server''' imposta anche il server che gestirà l'handshake SSL per le richieste su quella porta. Quindi, se si desidera che il blocco server A gestisca SSL, ma il server B funga da catchall per HTTPS, la soluzione è impostare '' 'server_name ~^(. +) $' '' Sul server B. – Luke