nginx directory mancante dei siti disponibili


190

Ho installato Nginx su Centos 6 e sto cercando di configurare host virtuali. Il problema che sto riscontrando è che non riesco a trovare la /etc/nginx/sites-availabledirectory.

C'è qualcosa che devo fare per crearlo? So che Nginx è attivo e funzionante perché posso sfogliarlo.


Se si desidera dividere un file di configurazione di grandi dimensioni in quelle più piccole, è possibile usare il mio script per dividerlo: stackoverflow.com/a/38635284/1069083
rubo77

Risposte:


354

Bene, penso che nginx da solo non lo abbia nella sua configurazione, perché il pacchetto gestito da Ubuntu lo fa come una convenzione per imitare la configurazione di Apache di Debian. Potresti crearlo tu stesso se volessi emulare la stessa configurazione.

Crea /etc/nginx/sites-availablee /etc/nginx/sites-enabledquindi modifica il httpblocco all'interno /etc/nginx/nginx.confe aggiungi questa riga

include /etc/nginx/sites-enabled/*;

Ovviamente, tutti i file saranno all'interno sites-availablee creeresti un link simbolico all'interno sites-enabledper quelli che vuoi abilitare.


23
I parenti di RedHat (cioè Fedora e Centos) non hanno questa funzionalità pronta all'uso come Debian / Ubuntu. È facile da copiare, come ha detto @Mohammad, ma non avere delle buone impostazioni predefinite è fonte di confusione per i nuovi arrivati.
MGP,

36
Dio, non posso dire quante ricerche ho fatto per capirlo. Sto usando Amazon Linux AMI versione 2014.03. Queste directory non vengono create automaticamente se installi nginx dai file rpm (se nginx 1.6.2 o nginx 1.7.5) ma molti esempi di configurazione di nginx fanno riferimento a questi ... facendoti chiederti se il tuo nginx sia stato installato correttamente o meno.
so_mv,

1
Fantastico grazie, che ne dici del link simbolico? La mia sintassi è corretta? Non sembra essere trovato dall'istruzione include.
zeri-e-uno

7
L'ho risolto, ho iniziato da capo e ho creato un collegamento sym in questo modo: sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confnon sono sicuro del perché il percorso completo abbia fatto la differenza: /
zeros-and-ones

1
Grazie mille. Costruito nginx dalla fonte e non si è reso conto che Ubuntu ha fatto questo.
Sean Norwood,

66

Se preferisci un approccio più diretto, uno che NON guasta il collegamento simbolico tra /etc/nginx/sites-availablee /etc/nginx/sites-enabled, procedi come segue:

  1. Individua il tuo file nginx.conf. Probabile a/etc/nginx/nginx.conf
  2. Trova il blocco http.
  3. Da qualche parte nel blocco http, scrivi include /etc/nginx/conf.d/*.conf;Questo dice a nginx di inserire tutti i file nella conf.ddirectory che finiscono .conf. (Lo so: è strano che una directory possa contenere una ..)
  4. Creare la conf.ddirectory se non esiste già (per il percorso nel passaggio 3). Assicurati di dargli le giuste autorizzazioni / proprietà. Probabile root o www-data.
  5. Sposta o copia i tuoi file di configurazione separati (proprio come hai fatto tu /etc/nginx/sites-available) nella directory conf.d.
  6. Ricarica o riavvia nginx.
  7. Mangia un cono gelato.

Tutti i .conffile che inserisci nella conf.ddirectory da qui in avanti diventeranno attivi fintanto che ricarichi / riavvii nginx dopo.

Nota: se lo si desidera, è possibile utilizzare contemporaneamente il metodo conf.de sites-enabled+ sites-available. Mi piace provare sulla mia casella di sviluppo utilizzando conf.d. Si sente più veloce di symlinking e unsymlinking.


13
Il punto del "pasticcio" del collegamento simbolico è che è possibile conservare i file di configurazione e disabilitare gli host virtuali molto facilmente. Se usi il tuo approccio, devi spostare i file da conf.d quando vuoi disabilitare un sito che non credo sia meno disordinato rispetto all'eliminazione conveniente di un link simbolico.
bviktor,

@bviktor ti sento. In realtà uso entrambi i modi. Ho appena trovato più noioso [durante il test delle configurazioni] rimbalzare avanti e indietro tra le directory disponibili per i siti e quelle abilitate per i siti. Nel mio ambiente di produzione sto pensando di utilizzare il collegamento simbolico.
elbowlobstercowstand

1
Sì, sono d'accordo, digitare ln -s ../sites-available/...è piuttosto noioso quando si testano rapidamente cose, ma a lungo termine è utile e più facile da gestire :)
bviktor

@bviktor Così grato per la possibilità di essere in grado di premere il tasto sul terminale quando si scrive un nome di percorso e si guarda il completamento automatico. Non lo sapevo da un po 'fino a quando non ho visto un video con qualcuno che lo usava. Ho pensato che digitassero a 300 wpm! Poi ho preso piede. :)
elbowlobstercowstand

12
@bvktor Vengono inclusi solo i siti con estensione .conf. Se non si desidera abilitare un sito, è sufficiente aggiungere l'estensione .disabled al file di configurazione del sito. Questa è la convenzione standard in CentOS / Apache e si applicherà anche a Nginx.
SenG,

0

Ho provato sudo apt install nginx-full. Riceverai tutti i pacchetti richiesti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.