NGinx Posizione www pubblica predefinita?


303

Ho già lavorato con Apache, quindi sono consapevole che la radice Web pubblica predefinita è in genere /var/www/ .

Di recente ho iniziato a lavorare con nginx, ma non riesco a trovare la radice Web pubblica predefinita.

Dove posso trovare la radice Web pubblica predefinita per nginx?

Risposte:


166

Se la tua configurazione non include root /some/absolute/path;un'istruzione o ne include una che utilizza un percorso relativo comeroot some/relative/path; , il percorso risultante dipende dalle opzioni di compilazione.

Probabilmente l'unico caso che ti permetterebbe di formulare un'ipotesi su cosa significherebbe per te se scaricassi e compilassi tu stesso la fonte. In tal caso, i percorsi sarebbero relativi a qualsiasi cosa --prefixfosse utilizzata. Se non l'hai modificato, per impostazione predefinita è /usr/local/nginx. Puoi trovare i parametri con cui nginx è stato compilato tramite nginx -V, elenca --prefixcome il primo.

Poiché la rootdirettiva è predefinitahtml , ciò comporterebbe ovviamente/usr/local/nginx/html la risposta alla tua domanda.

Tuttavia, se hai installato nginx in qualsiasi altro modo, tutte le scommesse sono disattivate. La tua distribuzione potrebbe utilizzare percorsi predefiniti completamente diversi. Imparare a capire quale tipo di impostazioni predefinite utilizza la tua distribuzione preferita per le cose è un altro compito.


32
Potresti forse dare un suggerimento che puoi usare "nginx -V" (V maiuscola) per scoprire gli argomenti di configurazione usati per compilare nginx.
Kaufholdr,

1
@kaufholdr ha ragione, troverete che --prefix @ Gnarfoz menzionato sembra simile a questo --prefix = / usr / share / nginx
Dung

6
Questo dipende anche dal sistema operativo in cui si trova l'installazione, per Amazon Linux, la directory è: / usr / share / nginx / html
jeffmcneill

Il percorso --prefix non è sempre corretto. Sul mio debian 9 nginx install il percorso del prefisso era "/ var / www / html" ma come risulta il percorso predefinito acutal era "/ usr / share / nginx / html". Guardando il file di configurazione predefinito in / etc / nginx / sites-available / default ha mostrato che il percorso è lo stesso del percorso --prefix. Ma il file di configurazione che si trova in /etc/nginx/conf.d/default.conf elencava la radice come / usr / share / nginx / html. Il file default.conf ha la precedenza sul normale file predefinito. Assicurati di controllare entrambi i file di configurazione o potresti lavorare con la radice sbagliata.
Caveman,

1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'ti dà la nginx HOME.
sjas,

436

Se si installa su Ubuntu usando apt-get, provare /usr/share/nginx/www.

MODIFICARE:

Nelle versioni più recenti il ​​percorso è stato modificato in: /usr/share/nginx/html

EDIT 2019:

Potrebbe provare /var/www/html/index.nginx-debian.html anche tu.


113
nginx 1.4.1 su Ubuntu è in / usr / share / nginx / html
Nick Desaulniers

Ho appena installato nginx su Raspberry, la directory predefinita è la stessa scritta da Lufix +1. Su raspbian scaricato da apt-get
Mitro

4
Ho appena confermato che su CentOS 7.0 è anche / usr / share / nginx / html
djhaskin987,

2
Debian apt-get, controlla / etc / nginx / available-sites / default , Ho trovato il percorso lì.
Chris.Zou,

7
ubuntu 16 /var/www/html/index.nginx-debian.html
don bright

65

La directory Nginx predefinita su Debian è /var/www/nginx-default.

Puoi controllare il file: /etc/nginx/sites-enabled/default

e trova

server {
        listen   80 default;
        server_name  localhost;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                root   /var/www/nginx-default;
                index  index.html index.htm;
        }

La radice è la posizione predefinita.


5
In CentOS, ho scoperto che non esiste alcuna cartella / etc / nginx / sites-enabled /. c'è /etc/nginx/conf.d/ e due file server.conf e virtual.conf hanno i dettagli di questo server. Puoi fare attenzione anche a quello.
Nafis Ahmad,

1
Per aggiungere al commento di Nafis, il nome file nella directory conf.d deve terminare in .conf o non verranno raccolti.
Ethan Hohensee,

1
Ciò si applica solo se il sito predefinito è abilitato e corrisponde alla richiesta. In caso contrario, la radice predefinita è html.
OrangeDog,

@OrangeDog Come verificare se default siteè abilitato?
Timo,

1
@Timo questa risposta dice come
OrangeDog il

44

'root web pubblico predefinito' può essere trovato dall'output nginx -V:

nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --user=nginx --group=nginx --with-ipv6 --with-file-aio --with-pcre-jit --with-http_dav_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-http_auth_request_module --with-mail --with-mail_ssl_module

il valore --prefix è la risposta alla domanda. per il campione sopra la radice è / var / lib / nginx


1
Sì, il migliore e multipiattaforma.
Jesse Adelman,

Questo non è sempre corretto "--prefix" potrebbe essere usato su alcuni sistemi ma non su tutti. Sono d'accordo che nginx -V ti dà molte informazioni che aiuteranno a tracciare dove sono i file, ma questo dipende dal sistema operativo. IE su FreeBSD non è in qualunque cosa sia "--prefix", ma "/ usr / local / www" e in alcune distro di Linux potrebbe anche deffare. È meglio esaminare la configurazione.
Mikec,

"--prefix" è la variabile definita dallo standard GNU - vedi gnu.org/prep/standards/html_node/Directory-Variables.html .
Serge S,

"--prefix" è la variabile definita dallo standard GNU - vedi gnu.org/prep/standards/html_node/Directory-Variables.html . nginx segue gli standard. Se non si definisce radice o posizione nel file di configurazione (dipende da --conf-path) il prefisso mostrerà dove si trova 'root web pubblico predefinito'. E ciò non dipende dal sistema operativo, sebbene un pacchetto fornito con una distribuzione del sistema operativo possa anche fornire una configurazione che a sua volta ridefinisce la "radice Web pubblica predefinita".
Serge S,

così l'algoritmo: look per --conf-percorso in -V nginx uscita. se location / o root non viene ridefinito nella configurazione - usa --prefix per la posizione 'root del web pubblico predefinito'.
Serge S,

25

Su Mac OS X l'installazione di nginx con brew rende la directory predefinita:

/usr/local/var/www

Così:

root html

si intende

root /usr/local/var/www/html

Non esiste una directory html, quindi dovrebbe essere creata manualmente.


1
+1 per menzionare macOS e homebrew. Tuttavia, ho scoperto che anche se root html, index.htmle 50x.htmlviene messo direttamente in /usr/local/var/www. Pertanto, dubito che esista una htmlcartella. Potresti darmi un aiuto in questo?
iplus26,

3
"brew info nginx" Fornisce la docroot elencata nell'output. Ma specificando "root html" in una configurazione nginx si modifica la docroot per quella configurazione nginx.
freegnu,

1
Per me (MAC OS X El Capitan 10.11.5) e brew (1.1.5), la directory era /usr/local/Cellar/nginx/1.10.2_1/html dove 1.10.2_1 è la versione nginx.
Yogesh Yadav il

2
Sul mio brew install la directory Cellar è un link simbolico: /usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/e nginx -V mostra: --prefix=/usr/local/Cellar/nginx/1.12.0_1così root htmlviene reindirizzato tramite quel link.
Mark Edington,

@ directory html iplus26 già disponibile /usr/local/Cellar/nginx/1.12.2_1/html, credo / usr / local / var / www solo un link
Kanagavelu Sugumar

21

Puoi semplicemente mappare la cartella principale di nginx sulla posizione del tuo sito Web:

nano /etc/nginx/sites-enabled/default

all'interno del file predefinito , cerca la radice nel tag del server e modifica la cartella predefinita del tuo sito Web, ad es. i miei siti Web sono in / var / www

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www; <-- Here!
...

Quando stavo valutando nginx, apache2 e lighttpd, li ho mappati sul mio sito web su / var / www . Ho trovato questo il modo migliore per valutare in modo efficiente.

Quindi puoi avviare / arrestare il server di tua scelta e vedere quale funziona meglio.

per esempio

service apache2 stop
service nginx start

A proposito, nginx in realtà è molto veloce!


19

come la maggior parte degli utenti ha detto, è sotto questo percorso:

/usr/share/nginx/html

Questo è il percorso predefinito, ma puoi crearne uno tuo.

tutto ciò che serve è crearne uno nella struttura principale del web server e assegnargli alcune autorizzazioni "non 0777" e solo per un utente e visibile solo a quell'utente, ma la fine del percorso è visibile a tutti dalla fine del percorso è ciò che i tuoi file e cartelle verranno visualizzati dal pubblico.

ad esempio, puoi crearne uno in questo modo:

home_web/site1/public_html/www/

ogni volta che crei un host virtuale in Nginx puoi personalizzare il tuo percorso di root, aggiungi qualcosa di simile nel tuo blocco server:

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}

Sì hai ragione. Ho appena installato Nginx sul mio centos7 e ho notato che il percorso predefinito è /usr/share/nginx/html/cartella. C'è un motivo per cambiare quel percorso (per motivi di sicurezza o altri motivi)? Va bene lasciarlo nella cartella predefinita se sarò l'unico utente e se ospiterò solo 1 sito web al suo interno?
Neel,

Non importa la mia ultima domanda. Ho finito per creare cartelle separate perché ho pensato che fosse meglio in questo modo solo nel caso in cui volessi aggiungere diversi host a questo set in futuro. È più facile in questo modo. Saluti :)
Neel,

11

La cartella Web predefinita per nginx dipende da come è stata installata, ma normalmente si trova in queste posizioni:

/usr/local/nginx/html
/usr/nginx/html

10

Per immagini Ubuntu e docker:

 /usr/share/nginx/html/

Solo curioso, dire che non lo sapevo, come avrei trovato qual è il posto giusto? Ci sono molte risposte diverse a questa
domanda

Per quanto mi ricordo ho cercato "nginx" (qualcosa come find / -name nginx) e ho trovato in questa directory (o nella sua sottodirectory) il documento che è apparso nel mio browser.
DimiDak,

9

Esegui il comando nginx -V e cerca il --prefix. Utilizzare quella voce per individuare i percorsi predefiniti.


9

Scarica la configurazione:

$ nginx -T
...
server {
    ...
    location / {
        root   /usr/share/nginx/html;
        ...
    }
    ...
}

Ciò che ottieni potrebbe essere diverso poiché dipende da come è nginxstato configurato / installato.

Riferimenti:

Aggiornamento: c'è un po 'di confusione sul problema di se / quando l' -Topzione è stata aggiunta nginx. È stato documentato nella pagina man da vl-homutov il 16 giugno 2015, che è diventato parte della versione v1.9.2 . È anche menzionato nelle note di rilascio . L' -Topzione è presente in ogni nginxversione da allora, inclusa quella disponibile su Ubuntu 16.04.1 LTS:

root@23cc8e58640e:/# nginx -h    
nginx version: nginx/1.10.0 (Ubuntu)
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/share/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

non penso che questo flag esista, potresti dover aggiornare la risposta
lfender6445

@ ifender6445, sono completamente confuso dal tuo commento. Ho due riferimenti alle linee nella fonte, ognuna delle quali mostra l' -Topzione. -TManca l' opzione della tua installazione particolare? Puoi mostrare qualcosa a sostegno del tuo reclamo?
rubicks

sì, potrebbe essere una versione diversa di nginx? gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445

Vedo. sembra che sto usando una versione precedente di nginx, scuse!
lfender6445,

9

Cerca nel file di configurazione nginx per essere sicuro. Questo comando greps per tutto ciò che è configurato sul tuo computer:

cat /etc/nginx/sites-enabled/default |grep "root"

sulla mia macchina era: `root / usr / share / nginx / www;


8

Su Mac installare nginx con brew:

/usr/local/etc/nginx/nginx.conf

location / { 
    root   html;  # **means /usr/local/Cellar/nginx/1.8.0/html and it soft linked to /usr/local/var/www**
    index  index.html;
}  

8

Per CentOS, Ubuntu e Fedora, la directory predefinita è /usr/share/nginx/html


Voglio la radice di nginx var/www/html.
Dhaduk Mitesh,


5

Nel mio caso era dentro /usr/share/nginx/html

puoi provare a trovare eseguendo una ricerca

find / -name html

5

Se sei su Ubuntu 14.04 puoi trovare la directory www di nginx al seguente percorso:

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$

Grazie, breve conciso e preciso. A volte la spiegazione più semplice è la migliore.
WhyAyala,

Voglio la radice di nginx var/www/html.
Dhaduk Mitesh,

5

Puoi cercarlo, indipendentemente da dove lo abbiano spostato (amministratore di sistema spostato o versione più recente di nginx)

trova / -name nginx


4

Se hai bisogno di scoprire la cartella root pubblica nginx che è stata definita in fase di compilazione, puoi semplicemente controllare il tuo file access.log.

  1. Apri nginx.conf
  2. Trova la direttiva log_format
  3. Il valore di log_format è una stringa modello utilizzata per scrivere informazioni nel file access.log . È possibile aggiungere la variabile $ document_root a questa stringa di modello per registrare la posizione root www predefinita in un file.

Ecco un esempio dalla sezione http di nginx.conf con la direttiva log_format modificata , $ document_root viene aggiunto all'inizio della stringa:

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

                  ## ADD $document_root HERE ##
        log_format  main  '$document_root $remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;

        etc. .......
  1. Quindi eseguire il backup di tutti i file di configurazione * .conf nella directory conf.d e creare lì il file di configurazione, test.conf con le seguenti righe:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Aggiungi la seguente riga al file / etc / hosts: 127.0.0.1 localhost

    2. Ricarica la configurazione di nginx: nginx -s reload

    3. Invia la richiesta GET a http: // localhost :curl http://localhost

    4. Controlla l'ultima stringa di access.log :tail -n 1 /var/log/nginx/access.log

Ecco l'output di esempio di questo comando, dove / etc / nginx / html è la radice del documento predefinita definita al momento della compilazione:

    /etc/nginx/html 127.0.0.1 - - [15/Mar/2017:17:12:25 +0200] "GET / HTTP/1.1" 404 169 "-" "curl/7.35.0" "-"

sembra che funzioni, ma non mi ha risolto. Un record per * .knexusgroup.com è su 54.235.222.119, w3.knexusgroup.com ma non ha registrato alcun dominio <nulla> .knexusgroup.com. Funziona dove esiste una definizione corretta di root dir, non sono in grado di capire qual è il problema, perché non riesco a trovare il root per qualsiasi sottodominio che non è abbinato a nessuna config ngiinx.
Ramratan Gupta,

4

puoi accedere al file config nginx, puoi vedere root / path. in questo default di nginx apache a/var/www/html


/var/www/htmlè la radice Web predefinita per apache, non nginx.
Ethan Hohensee,

4

* pagine Web predefinite allocate in var / www / html * server di configurazione predefinito etc / nginx / sites / avaliable / nginx.conf

server {

    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.php;

    server_name _;

    location /data/ {
        autoindex on;
    }

    location /Maxtor {
        root /media/odroid/;
        autoindex on;

    }

        # This option is important for using PHP.
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    }
}

* server di configurazione predefinito etc / nginx / nginx.conf

soddisfare..

user www-data;
worker_processes 8;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

registri di accesso predefiniti con client ip var / log / nginx / ...


3

Solo per notare che la pagina dell'indice predefinita per il server nginx visualizzerà anche la posizione principale. Da nginx (1.4.3) su Amazon Linux AMI, ottieni quanto segue:

Questa è la pagina index.html predefinita che viene distribuita con nginx sull'AMI Amazon Linux. Si trova in / usr / share / nginx / html.

Ora dovresti mettere i tuoi contenuti in una posizione a tua scelta e modificare la direttiva di configurazione radice nel file di configurazione nginx /etc/nginx/nginx.conf


3

Il mio nginx su Ubuntu è "versione nginx: nginx / 1.9.12 (Ubuntu)" e il percorso di root è / var / www / html /

Le informazioni di Ubuntu sono: Nessun modulo LSB disponibile. ID distributore: Ubuntu Descrizione: Ubuntu 16.04 LTS Rilascio: 16.04 Nome in codice: xenial

In realtà, se hai appena installato nginx su Ubuntu, puoi andare su "/ etc / nginx / sites-available" e controllare il file predefinito, esiste una configurazione come "root / web / root / path / goes / here". Ed è quello che stai cercando.


3

Puoi trovarlo in / var / www / che è la directory predefinita per nginx e apache ma puoi cambiarlo. passaggio 1 vai alla seguente cartella / etc / nginx / sites-available

passaggio 2 modifica il file predefinito in quanto è possibile trovare un blocco server al di sotto del quale ci sarà una linea denominata come root che è ciò che definisce la posizione.


3

in Ubuntu 19.04, l'abbiamo trovato su

/ Usr / share / nginx / html


2

Per nginx / 1.4.6 (Ubuntu)

/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;

2

In Ubuntu, la posizione della directory principale predefinita di Nginx è /usr/share/nginx/html


1

L'impostazione predefinita è correlata prefixall'opzione dello configurescript quando viene compilato nginx; ecco qualche strano esempio da Debian:

% nginx -V | & tr ' ' "\n" | fgrep -e path -e prefix
--prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock
--pid-path=/var/run/nginx.pid

Successivamente, il valore predefinito di rootè impostato sulla htmldirectory (secondo la documentazione della rootdirettiva ), che si trova all'interno prefix, come può essere verificato osservando la $document_rootvariabile da un semplice file di configurazione:

# printf 'server{listen 4867;return 200 $document_root\\n;}\n' \
    >/etc/nginx/conf.d/so.10674867.conf

# nginx -s reload && curl localhost:4867
/etc/nginx/html

Tuttavia, le distribuzioni malvagie come Debian sembrano modificarlo un po ', per farti divertire ulteriormente:

% fgrep -e root -e include /etc/nginx/nginx.conf
    include /etc/nginx/mime.types;
    #include /etc/nginx/naxsi_core.rules;
    #passenger_root /usr;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

% fgrep -e root -e include \
    /etc/nginx/conf.d/*.conf /etc/nginx/sites-enabled/*
/etc/nginx/conf.d/so.10674867.conf:server{listen 4867;return 200 $document_root\n;}
/etc/nginx/sites-enabled/default:   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:       # include /etc/nginx/naxsi.rules
/etc/nginx/sites-enabled/default:   #   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:   #   include fastcgi_params;
/etc/nginx/sites-enabled/default:   # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:#  root html;
/etc/nginx/sites-enabled/default:#  root html;

Quindi, su questa istanza di Debian, puoi vedere che il root è finalmente impostato su /usr/share/nginx/www.

Ma come hai visto con la configurazione del server di esempio che servirebbe il suo $document_rootvalore su http, configurare nginx è abbastanza semplice da poter scrivere la tua configurazione in una sola riga o due, specificando il necessario rootper soddisfare le tue esatte esigenze.


cosa significa root html;, intendo qual è il percorso reale?
Ramratan Gupta,

1
@RamratanGupta, non hai letto la risposta? Le prime righe delineano che il percorso è relativo all'impostazione del prefisso in fase di compilazione.
primo

1

Ho anche avuto questo problema su Digital Ocean con un sito Web WordPress con nginx.

La mia soluzione era quella di fare quanto segue:

  1. Modifica il /etc/nginx/nginx.conffile con il seguente:
server {
root /var/www/html;
}

Ho dovuto quindi sudo service nginx restart

nginx -VIl comando mostra anche dove si trova anche il tuo file di configurazione di nginx (il mio era puntato su /etc/nginx/nginx.conf)


0

Alpine Linux non ha alcuna posizione predefinita. Il file /etc/nginx/conf.d/default.confdice:

# Everything is a 404
location / {
    return 404;
}

# You may need this to prevent return 404 recursion.
location = /404.html {
    internal;
}

Sostituisci quelli con una linea come root /var/www/localhost/htdocsper puntare alla directory che desideri. Quindi sudo service nginx restartriavviare.


1
Non vero. Ho appena provato l' nginx:alpineimmagine più recente e offre contenuti da /usr/share/nginx/htmlsubito.
Jimbali,

1
Sembra un'immagine Docker creata dal progetto nginx che utilizza solo Alpine Linux come sistema operativo sottostante. Quando si installa Alpine Linux come sistema operativo principale e si esegue apk add nginxl'installazione manuale di nginx dal gestore dei pacchetti di Alpine, si ottiene la situazione descritta nella mia risposta (o quello era il caso in cui l'ho provato un paio di mesi fa).
Lassi,
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.