NGinx ¿Ubicación pública predeterminada de www?

303

He trabajado con Apache antes, así que sé que la raíz web pública predeterminada es típicamente /var/www/.

Recientemente comencé a trabajar con nginx, pero parece que no puedo encontrar la raíz web pública predeterminada.

¿Dónde puedo encontrar la raíz web pública predeterminada para nginx?

usuario456584
fuente

Respuestas:

166

Si su configuración no incluye una root /some/absolute/path;declaración, o si incluye una que usa una ruta relativa como root some/relative/path;, entonces la ruta resultante depende de las opciones de tiempo de compilación.

Probablemente el único caso que le permitiría hacer una suposición educada sobre lo que esto significa para usted, si descarga y compila la fuente usted mismo. En ese caso, las rutas serían relativas a lo que --prefixse utilizó. Si no lo cambió, el valor predeterminado es /usr/local/nginx. Puede encontrar los parámetros con los que se compiló nginx a través de nginx -V, se enumera --prefixcomo el primero.

Dado que la rootdirectiva se establece de manera predeterminadahtml , esto, por supuesto, /usr/local/nginx/htmlsería la respuesta a su pregunta.

Sin embargo, si instaló nginx de alguna otra manera, todas las apuestas están desactivadas. Su distribución puede usar rutas predeterminadas completamente diferentes. Aprender a descubrir qué tipo de valores predeterminados usa su distribución de elección para las cosas es otra tarea completamente diferente.

Gnarfoz
fuente
32
Tal vez podría dar una pista de que puede usar "nginx -V" (V mayúscula) para descubrir los argumentos de configuración utilizados para compilar nginx.
kaufholdr
1
@kaufholdr es correcto, encontrará el --prefix @ Gnarfoz mencionado similar a este --prefix = / usr / share / nginx
Dung
66
Esto también depende de en qué sistema operativo se encuentre la instalación, para Amazon Linux, el directorio es: / usr / share / nginx / html
jeffmcneill
La ruta --prefix no siempre es correcta. En mi instalación de Debian 9 nginx, la ruta del prefijo era "/ var / www / html", pero resulta que la ruta predeterminada aguda era "/ usr / share / nginx / html". Al mirar el archivo de configuración predeterminado en / etc / nginx / sites-available / default, se mostró que la ruta era la misma que la ruta --prefix. Pero el archivo de configuración ubicado en /etc/nginx/conf.d/default.conf enumeró la raíz como / usr / share / nginx / html. El archivo default.conf tiene prioridad sobre el archivo predeterminado normal. Asegúrese de verificar ambos archivos de configuración o podría estar trabajando con la raíz incorrecta.
Hombre de las cavernas
1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'te da el nginx HOME.
sjas
436

Si instala en Ubuntu usando apt-get, intente /usr/share/nginx/www.

EDITAR:

En versiones más recientes, la ruta ha cambiado a: /usr/share/nginx/html

EDITAR 2019:

Podría intentarlo /var/www/html/index.nginx-debian.htmltambién.

Lufix
fuente
113
nginx 1.4.1 en Ubuntu está en / usr / share / nginx / html
Nick Desaulniers
Acabo de instalar nginx en Raspberry, el directorio predeterminado es el mismo escrito por Lufix +1. En raspbian descargado de apt-get
Mitro
44
Acabo de confirmar que en CentOS 7.0, también es / usr / share / nginx / html
djhaskin987
2
Debian apt-get, check / etc / nginx / available-sites / default, encontré la ruta allí.
Chris.Zou
77
ubuntu 16 /var/www/html/index.nginx-debian.html
don bright
65

El directorio predeterminado de Nginx en Debian es /var/www/nginx-default .

Puedes consultar el archivo: /etc/nginx/sites-enabled/default

y encontrar

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 raíz es la ubicación predeterminada.

Babistalikesflyingonrails
fuente
55
En CentOS, descubrí que no hay una carpeta / etc / nginx / sites-enabled /. hay /etc/nginx/conf.d/ y hay dos archivos server.conf y virtual.conf con los detalles de este servidor. Puedes cuidar eso también.
Nafis Ahmad
1
Para agregar al comentario de Nafis, el nombre del archivo en el directorio conf.d debe terminar en .conf o no serán recogidos.
Ethan Hohensee
1
Esto solo se aplica si el sitio predeterminado está habilitado y coincide con la solicitud. De lo contrario, la raíz predeterminada es html.
OrangeDog
@OrangeDog ¿Cómo verificar si default siteestá habilitado?
Timo
1
@Timo esta respuesta dice cómo
OrangeDog
44

La 'raíz web pública predeterminada' se puede encontrar en la salida 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

El valor --prefix es la respuesta a la pregunta. para la muestra de arriba la raíz es / var / lib / nginx

Serge S
fuente
1
Sí, lo mejor, y multiplataforma.
Jesse Adelman
Esto no siempre es correcto "--prefix" podría usarse en algunos sistemas pero no en todos. Estoy de acuerdo en que nginx -V le brinda mucha información que ayudará a rastrear dónde están los archivos, pero esto depende del sistema operativo. IE en FreeBSD no está en lo que sea "--prefix", sino en "/ usr / local / www" y en algunas distribuciones de Linux también puede diferir. Es mejor mirar en la configuración.
Mikec
"--prefix" es la variable definida por el estándar GNU; consulte gnu.org/prep/standards/html_node/Directory-Variables.html .
Serge S
"--prefix" es la variable definida por el estándar GNU; consulte gnu.org/prep/standards/html_node/Directory-Variables.html . nginx sigue los estándares. Si no define la raíz o la ubicación en el archivo de configuración (depende de --conf-path), el prefijo mostrará dónde se encuentra la 'raíz web pública predeterminada'. Y eso no depende del sistema operativo, aunque un paquete suministrado con una distribución del sistema operativo también puede proporcionar una configuración que redefine a su vez la 'raíz web pública predeterminada'.
Serge S
entonces el algoritmo: busque --conf-path en la salida nginx -V . si ubicación / o raíz no se redefine en la configuración - el uso --prefix por 'defecto de raíz web público' ubicación.
Serge S
25

En Mac OS X, la instalación de nginx con brew hace que el directorio predeterminado:

/usr/local/var/www

Entonces:

root html

medio

root /usr/local/var/www/html

No hay un directorio html, por lo que debería crearse manualmente.

freegnu
fuente
1
+1 por mencionar macOS y homebrew. Sin embargo, encontré eso root html, index.htmly 50x.htmlse coloca directamente en /usr/local/var/www. Por lo tanto, dudo de la existencia de la htmlcarpeta. ¿Podrías ayudarme con eso?
iplus26
3
"brew info nginx" Da el docroot listado en la salida. Pero especificar "root html" en una configuración nginx cambia el docroot para esa configuración nginx.
freegnu
1
Para mí (MAC OS X El Capitan 10.11.5) y brew (1.1.5), el directorio era /usr/local/Cellar/nginx/1.10.2_1/html donde 1.10.2_1 es la versión nginx.
Yogesh Yadav
2
En mi instalación brew, el directorio de Cellar es un enlace simbólico: /usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/y la nginx -V muestra: --prefix=/usr/local/Cellar/nginx/1.12.0_1también root htmlse redirige a través de ese enlace.
Mark Edington
@ iplus26 directorio html ya disponible /usr/local/Cellar/nginx/1.12.2_1/html, creo que / usr / local / var / www es solo un enlace
Kanagavelu Sugumar
21

Simplemente puede asignar la carpeta raíz de nginx a la ubicación de su sitio web:

nano /etc/nginx/sites-enabled/default

dentro del archivo predeterminado , busque la raíz en la etiqueta del servidor y cambie la carpeta predeterminada de su sitio web, por ejemplo, mis sitios web están en / var / www

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

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

Cuando estaba evaluando nginx, apache2 y lighttpd, los asigné a mi sitio web en / var / www . Encontré esta es la mejor manera de evaluar de manera eficiente.

Luego puede iniciar / detener el servidor de su elección y ver cuál funciona mejor.

p.ej

service apache2 stop
service nginx start

Por cierto, nginx en realidad es muy rápido!

Waqas
fuente
19

Como dijo la mayoría de los usuarios, está bajo este camino:

/usr/share/nginx/html

Esta es la ruta predeterminada, pero puedes hacer la tuya.

todo lo que necesita es crear uno en el árbol raíz del servidor web y darle algunos permisos "no 0777" y solo para un usuario y visible solo para ese usuario, pero el final de la ruta es visible para todos desde el final de la ruta es lo que sus archivos y carpetas serán vistos por el público.

por ejemplo, puedes hacer uno como este:

home_web/site1/public_html/www/

cada vez que crea un host virtual en Nginx, puede personalizar su propia ruta raíz, simplemente agregue algo como esto en su bloque de servidor:

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}
Sitio digital
fuente
Sí tienes razón. Acabo de instalar Nginx en mi centos7 y noté que la ruta predeterminada es la /usr/share/nginx/html/carpeta. ¿Hay alguna razón para cambiar esa ruta (por razones de seguridad u otras)? ¿Está bien dejarlo en la carpeta predeterminada si voy a ser el único usuario y si solo voy a alojar 1 sitio web en él?
Neel
No importa mi última pregunta. Terminé creando carpetas separadas para él, ya que pensé que era mejor de esta manera solo en caso de que quisiera agregar diferentes vhosts a esta configuración en el futuro. Es más fácil de esta manera. Saludos :)
Neel
11

La carpeta web predeterminada para nginx depende de cómo la instaló, pero normalmente está en estas ubicaciones:

/usr/local/nginx/html
/usr/nginx/html
Jack
fuente
10

Para imágenes de Ubuntu y docker:

 /usr/share/nginx/html/
DimiDak
fuente
Por curiosidad, digamos que no sabía eso, ¿cómo podría encontrar cuál es la ubicación correcta? Hay muchas respuestas diferentes para esto
Royi Namir
Por lo que recuerdo, busqué "nginx" (algo así como encontrar / -name nginx) y encontré dentro de este directorio (o en su subdirectorio) el documento que apareció en mi navegador.
DimiDak
9

Ejecute el comando nginx -V y busque el --prefix. Use esa entrada para localizar sus rutas predeterminadas.

Jack
fuente
9

Volcar la configuración:

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

Lo que obtienes puede ser diferente ya que depende de cómo nginx fue configurado / instalado.

Referencias

Actualización: Existe cierta confusión sobre el tema de si / cuando -Tse agregó la opción nginx. Fue documentado en la página de manual por vl-homutov el 16 de junio de 2015, que se convirtió en parte de la versión v1.9.2 . Incluso se menciona en las notas de la versión . La -Topción ha estado presente en todas las nginxversiones desde entonces, incluida la disponible en 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
rubicks
fuente
No creo que este indicador exista, es posible que deba actualizar la respuesta
lfender6445
@ ifender6445, estoy completamente confundido por tu comentario. Tengo dos referencias a líneas en la fuente, cada una mostrando la -Topción. ¿ -TFalta la opción de su instalación particular? ¿Puede mostrar algo para corroborar su reclamo?
rubicks
sí lo es, ¿puede ser una versión diferente de nginx? gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445
Veo. parece que estoy usando una versión anterior de nginx, disculpas!
lfender6445
9

Mire el archivo de configuración nginx para estar seguro. Este comando greps para lo que esté configurado en su máquina:

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

en mi máquina era: `root / usr / share / nginx / www;

Thamme Gowda
fuente
8

En Mac instale 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;
}  
usuario2413075
fuente
8

Para CentOS, Ubuntu y Fedora, el directorio predeterminado es /usr/share/nginx/html

MucaP
fuente
Quiero nginx root de var/www/html.
Dhaduk Mitesh
7

Para AWS EC2 Linux encontrará aquí:

/usr/share/nginx
Vivek Sharma
fuente
5

En mi caso fue en /usr/share/nginx/html

puede intentar encontrar realizando una búsqueda

find / -name html
Eduardo Dennis
fuente
5

Si está en Ubuntu 14.04, puede encontrar el directorio nginx www en la siguiente ruta:

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$
Yusuf Ibrahim
fuente
Gracias, breve, conciso y preciso. A veces la explicación más simple es la mejor.
WhyAyala
Quiero nginx root de var/www/html.
Dhaduk Mitesh
5

Puede buscarlo, sin importar dónde lo movieron (administrador del sistema movido o versión más nueva de nginx)

encontrar / -name nginx

Dylan B
fuente
4

Si necesita encontrar la carpeta raíz pública nginx que se definió en el momento de la compilación, puede verificar su archivo access.log.

  1. Abra nginx.conf
  2. Encuentra la directiva log_format
  3. El valor de log_format es una cadena de plantilla que se utiliza para escribir información en el archivo access.log . Puede agregar la variable $ document_root a esta cadena de plantilla para registrar la ubicación de raíz www predeterminada en un archivo.

Aquí hay un ejemplo de la sección http de nginx.conf con la directiva log_format modificada , $ document_root se agrega al comienzo de la cadena:

    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. Luego haga una copia de seguridad de todos los archivos de configuración * .conf en el directorio conf.d y cree allí el archivo de configuración, test.conf con las siguientes líneas:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Agregue la siguiente línea al archivo / etc / hosts: 127.0.0.1 localhost

    2. Recargar la configuración de nginx: nginx -s reload

    3. Enviar solicitud GET a http: // localhost :curl http://localhost

    4. Verifique la última cadena de access.log :tail -n 1 /var/log/nginx/access.log

Aquí está la salida de muestra de este comando, donde / etc / nginx / html es la raíz de documento predeterminada definida en tiempo de compilación:

    /etc/nginx/html 127.0.0.1 - - [15/Mar/2017:17:12:25 +0200] "GET / HTTP/1.1" 404 169 "-" "curl/7.35.0" "-"
G.Denis
fuente
parece que funciona, pero no me resolvió, un registro para * .knexusgroup.com está en 54.235.222.119, w3.knexusgroup.com pero no registró ningún dominio <cualquier cosa> .knexusgroup.com. Funciona donde hay una definición adecuada de directorio raíz, no puedo entender cuál es el problema, por qué no puedo encontrar la raíz para ningún subdominio que no coincida con ninguna configuración ngiinx.
Ramratan Gupta
4

puede acceder a la configuración del archivo nginx, puede ver la raíz / ruta. en este valor predeterminado de nginx apache en/var/www/html

tomnyson
fuente
/var/www/htmles la raíz web predeterminada para apache, no nginx.
Ethan Hohensee
4

* páginas web predeterminadas asignadas en var / www / html * servidor de configuración predeterminado, 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;
    }
}

* servidor de configuración predeterminado, etc / nginx / nginx.conf

contenido..

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;
#   }
#}

registros de acceso predeterminados con clientes ip var / log / nginx / ...

usuario11793803
fuente
3

Solo para tener en cuenta que la página de índice predeterminada para el servidor nginx también mostrará la ubicación raíz también. Desde nginx (1.4.3) en Amazon Linux AMI, obtiene lo siguiente:

Esta es la página predeterminada index.html que se distribuye con nginx en la AMI de Amazon Linux. Se encuentra en / usr / share / nginx / html.

Ahora debe colocar su contenido en la ubicación que elija y editar la directiva de configuración raíz en el archivo de configuración nginx /etc/nginx/nginx.conf

jboles
fuente
3

Mi nginx en Ubuntu es "versión nginx: nginx / 1.9.12 (Ubuntu)" y la ruta raíz es / var / www / html /

La información de Ubuntu es: No hay módulos LSB disponibles. ID de distribuidor: Ubuntu Descripción: Ubuntu 16.04 LTS Release: 16.04 Nombre en clave: xenial

En realidad, si acaba de instalar nginx en Ubuntu, puede ir a "/ etc / nginx / sites-available" y verificar el archivo predeterminado, hay una configuración como "root / web / root / path / goes / here / here". Y eso es lo que estás buscando.

Daniel Dong
fuente
3

Puede encontrarlo en / var / www / que es el directorio predeterminado para nginx y apache, pero puede cambiarlo. paso 1 ve a la siguiente carpeta / etc / nginx / sites-available

paso 2 edite el archivo predeterminado en el que puede encontrar un bloque de servidor debajo del cual habrá una línea llamada como raíz que es lo que define la ubicación.

gokul kandasamy
fuente
3

en ubuntu 19.04, lo encontramos en

/ usr / share / nginx / html

Arséne
fuente
2

Para nginx / 1.4.6 (Ubuntu)

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

En Ubuntu, la ubicación predeterminada del directorio raíz de Nginx es /usr/share/nginx/html

Syed Abdul Qadeer
fuente
1

El valor predeterminado está relacionado con la prefixopción del configurescript cuando se compila nginx; Aquí hay una muestra extraña de 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

Posteriormente, el valor predeterminado de rootse establece en el htmldirectorio (según la documentación de la rootdirectiva ), que está dentro prefix, como se puede verificar mirando la $document_rootvariable desde un archivo de configuración simple:

# 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

Sin embargo, las distribuciones malvadas como Debian parecen modificarlo un poco, para mantenerlo entretenido adicional:

% 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;

Entonces, en esta instancia de Debian, puede ver que la raíz finalmente está configurada en /usr/share/nginx/www.

Pero como vio con la configuración del servidor de muestra que serviría a su $document_rootvalor sobre http, configurar nginx es lo suficientemente simple como para que pueda escribir su propia configuración en cuestión de una o dos líneas, especificando lo requerido rootpara satisfacer sus necesidades exactas.

cnst
fuente
¿Qué significa root html;, quiero decir, cuál es el camino real?
Ramratan Gupta
1
@RamratanGupta, ¿no leíste la respuesta? Las primeras líneas describen que la ruta es relativa a la configuración del prefijo en tiempo de compilación.
cnst
1

También tuve este problema en Digital Ocean con un sitio web de WordPress con nginx.

Mi solución fue hacer lo siguiente:

  1. Modifique el /etc/nginx/nginx.confarchivo con lo siguiente:
server {
root /var/www/html;
}

Entonces tuve que sudo service nginx restart

nginx -Vel comando también le muestra dónde se encuentra su archivo de configuración nginx (se apuntó al mío /etc/nginx/nginx.conf)

John C
fuente
0

Alpine Linux no tiene ninguna ubicación predeterminada en absoluto. El archivo /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;
}

Reemplace aquellos con una línea como root /var/www/localhost/htdocspara apuntar al directorio que desea. Luego sudo service nginx restartpara reiniciar.

Lassi
fuente
1
No es verdad. Acabo de probar la última nginx:alpineimagen y sirve contenido de /usr/share/nginx/htmlfábrica.
Jimbali
1
Eso suena como una imagen de Docker hecha por el proyecto nginx que simplemente usa Alpine Linux como el SO subyacente. Cuando instala Alpine Linux como su sistema operativo principal y realiza la apk add nginxinstalación manual de nginx desde el propio administrador de paquetes de Alpine, obtiene la situación descrita en mi respuesta (o ese fue el caso cuando lo probé hace un par de meses de todos modos).
Lassi