NGinx Local público padrão do www?

303

Já trabalhei com o Apache antes, portanto, estou ciente de que a raiz pública da Web padrão é normalmente /var/www/.

Recentemente, comecei a trabalhar com o nginx, mas não consigo encontrar a raiz da web pública padrão.

Onde posso encontrar a raiz da web pública padrão para o nginx?

user456584
fonte

Respostas:

166

Se sua configuração não incluir uma root /some/absolute/path;instrução ou incluir uma que use um caminho relativo root some/relative/path;, o caminho resultante dependerá das opções em tempo de compilação.

Provavelmente, o único caso que lhe permitiria adivinhar o que isso significa para você seria se você baixasse e compilasse a fonte por conta própria. Nesse caso, os caminhos seriam relativos ao que --prefixfoi usado. Se você não o alterou, o padrão será /usr/local/nginx. Você pode encontrar os parâmetros com os quais o nginx foi compilado via nginx -V, ele lista --prefixcomo o primeiro.

Como a rootdiretiva é padronizadahtml , isso certamente resultaria na /usr/local/nginx/htmlresposta à sua pergunta.

No entanto, se você instalou o nginx de qualquer outra forma, todas as apostas estão desativadas. Sua distribuição pode usar caminhos padrão totalmente diferentes. Aprender a descobrir que tipo de padrão sua distribuição preferida usa para as coisas é outra tarefa.

Gnarfoz
fonte
32
Você pode dar uma dica de que pode usar "nginx -V" (V maiúsculo) para descobrir os argumentos de configuração usados ​​para compilar o nginx.
kaufholdr
1
@kaufholdr está correto que você vai encontrar o --prefix @ Gnarfoz mencionado aparência semelhante a esta --prefix = / usr / share / nginx
Dung
6
Isso também depende de qual sistema operacional a instalação é, por Amazon Linux, o diretório é: / usr / share / nginx / html
jeffmcneill
O caminho --prefix nem sempre está correto. Na minha instalação do debian 9 nginx, o caminho do prefixo era "/ var / www / html", mas, como se vê, o caminho padrão acutal foi "/ usr / share / nginx / html". Observar o arquivo de configuração padrão em / etc / nginx / sites-available / default mostrou que o caminho era o mesmo que o caminho --prefix. Mas o arquivo de configuração localizado em /etc/nginx/conf.d/default.conf listou a raiz como / usr / share / nginx / html. O arquivo default.conf tem precedência sobre o arquivo padrão normal. Verifique os dois arquivos de configuração ou você pode estar trabalhando com a raiz errada.
Caveman
1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'fornece o nginx HOME.
S22
436

Se estiver instalando no Ubuntu usando o apt-get, tente /usr/share/nginx/www.

EDITAR:

Nas versões mais recentes, o caminho foi alterado para: /usr/share/nginx/html

EDIT 2019:

Pode tentar /var/www/html/index.nginx-debian.htmltambém.

Lufix
fonte
113
nginx 1.4.1 no Ubuntu está em / usr / share / nginx / html
Nick Desaulniers
Acabei de instalar o nginx no Raspberry, o diretório padrão é o mesmo escrito pelo Lufix +1. No raspbian baixado do apt-get
Mitro
4
Apenas confirmou que no CentOS 7.0, é / usr / share / nginx / html bem
djhaskin987
2
Debian apt-get, verifique / etc / nginx / sites-disponíveis / padrão , Encontrei o caminho lá.
precisa saber é o seguinte
7
ubuntu 16 /var/www/html/index.nginx-debian.html
don bright
65

O diretório Nginx padrão no Debian é /var/www/nginx-default.

Você pode verificar o arquivo: /etc/nginx/sites-enabled/default

e encontra

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

A raiz é o local padrão.

Babistalikesflyingonrails
fonte
5
No CentOS, descobri que não existe uma pasta / etc / nginx / sites-enabled /. existe /etc/nginx/conf.d/ e existem dois arquivos server.conf e virtual.conf possui os detalhes deste servidor. Você pode cuidar disso também.
Nafis Ahmad
1
Para adicionar ao comentário de Nafis, o nome do arquivo no diretório conf.d deve terminar em .conf ou não será escolhido.
Ethan Hohensee
1
Isso se aplica apenas se o site padrão estiver ativado e corresponder à solicitação. Caso contrário, a raiz padrão é html.
precisa saber é o seguinte
@OrangeDog Como verificar se default siteestá ativado?
Timo
1
@Timo esta resposta diz como
OrangeDog 5/06
44

'raiz da web pública padrão' pode ser encontrada na saída 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

o valor --prefix é a resposta para a pergunta. para a amostra acima, a raiz é / var / lib / nginx

Serge S
fonte
1
Sim, o melhor e multiplataforma.
Jesse Adelman
Isso nem sempre é correto "--prefix" pode ser usado em alguns sistemas, mas não em todos. Concordo que o nginx -V fornece muitas informações que ajudarão a rastrear onde estão os arquivos, mas isso depende do sistema operacional. O IE no FreeBSD não possui o "prefixo", mas "/ usr / local / www" e, em algumas distros do Linux, ele também pode diferir. É melhor olhar para a configuração.
Mikec
"--prefix" é a variável definida pelo padrão GNU - veja gnu.org/prep/standards/html_node/Directory-Variables.html .
Serge S
"--prefix" é a variável definida pelo padrão GNU - veja gnu.org/prep/standards/html_node/Directory-Variables.html . O nginx segue os padrões. Se você não definir raiz ou localização no arquivo de configuração (depende de --conf-path), o prefixo mostrará onde 'raiz da web pública padrão' se localiza. E isso não depende do sistema operacional, embora um pacote fornecido com uma distribuição do sistema operacional também possa fornecer uma configuração que redefina a 'raiz pública da web padrão' por sua vez.
Serge S
então o algoritmo: procure --conf-path na saída nginx -V . se local / ou raiz não for redefinida no config - use - prefix para o local 'root public web root'.
Serge S
25

No Mac OS X, a instalação do nginx with brew cria o diretório padrão:

/usr/local/var/www

Assim:

root html

significa

root /usr/local/var/www/html

Não há diretório html, portanto, ele teria que ser criado manualmente.

freegnu
fonte
1
+1 por mencionar o macOS e o homebrew. No entanto, descobri que embora root html, index.htmle 50x.htmlé colocado diretamente no /usr/local/var/www. Portanto, duvido que exista htmlpasta. Você poderia me ajudar com isso?
precisa saber é o seguinte
3
"brew info nginx" Fornece a documentação listada na saída. Mas especificar "root html" em uma configuração do nginx altera o docroot para essa configuração do nginx.
freegnu 13/08/16
1
Para mim (MAC OS X El Capitan 10.11.5) e brew (1.1.5), o diretório era /usr/local/Cellar/nginx/1.10.2_1/html onde 1.10.2_1 é a versão nginx.
Yogesh Yadav
2
Na minha instalação de cerveja, o diretório Cellar é um link simbólico: /usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/e os nginx -V shows: o --prefix=/usr/local/Cellar/nginx/1.12.0_1mesmo root htmlé redirecionado por esse link.
precisa
@ iplus26 html diretório já disponível /usr/local/Cellar/nginx/1.12.2_1/html, eu acho que / usr / local / var / www apenas um link
Kanagavelu Sugumar
21

Você pode simplesmente mapear a pasta raiz do nginx para o local do seu site:

nano /etc/nginx/sites-enabled/default

dentro do arquivo padrão , procure a raiz na etiqueta do servidor e altere a pasta padrão do seu site, por exemplo, meus sites estão em / var / www

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

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

Ao avaliar o nginx, o apache2 e o lighttpd, mapeei todos eles para o meu site em / var / www . Eu achei essa a melhor maneira de avaliar com eficiência.

Em seguida, você pode iniciar / parar o servidor de sua escolha e ver qual funciona melhor.

por exemplo

service apache2 stop
service nginx start

Aliás, o nginx é realmente muito rápido!

Waqas
fonte
19

como a maioria dos usuários disse aqui, está neste caminho:

/usr/share/nginx/html

Este é o caminho padrão, mas você pode fazer o seu.

tudo o que você precisa é criar um na árvore raiz do servidor da web e conceder algumas permissões "não 0777" e apenas para um usuário e visível apenas para esse usuário, mas o final do caminho é visível para todos desde o final do caminho é o que seus arquivos e pastas serão visualizados pelo público.

por exemplo, você pode criar um como este:

home_web/site1/public_html/www/

sempre que você criar um host virtual no Nginx, poderá personalizar seu próprio caminho raiz; basta adicionar algo assim no bloco do servidor:

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}
Site digital
fonte
Sim, você está certo. Acabei de instalar o Nginx no meu centos7 e notei que o caminho padrão é a /usr/share/nginx/html/pasta. Existe algum motivo para alterar esse caminho (por segurança ou por outros motivos)? Não há problema em deixá-lo na pasta padrão se eu for o único usuário e se vou hospedar apenas um site nele?
Neel
Não importa minha última pergunta. Acabei criando pastas separadas para ele, pois pensei que seria melhor assim, pois quero adicionar vhosts diferentes a essa configuração no futuro. É mais fácil assim. Cheers :)
Neel
11

A pasta da Web padrão para o nginx depende de como você a instalou, mas normalmente está nesses locais:

/usr/local/nginx/html
/usr/nginx/html
Ja͢ck
fonte
10

Para imagens do Ubuntu e docker:

 /usr/share/nginx/html/
DimiDak
fonte
Apenas curioso, diga que eu não sabia disso, como eu encontraria o local certo? Há muitas respostas diferentes para esta lá fora
Royi Namir
Tanto quanto me lembro, procurei por "nginx" (algo como find / -name nginx) e encontrei dentro deste diretório (ou em seu subdiretório) o documento que apareceu no meu navegador.
DimiDak 13/02/19
9

Execute o comando nginx -V e procure o --prefix. Use essa entrada para localizar seus caminhos padrão.

Jack
fonte
9

Despejar a configuração:

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

O que você obtém pode ser diferente, pois depende de como o seu nginxfoi configurado / instalado.

Referências:

Atualização: Há alguma confusão sobre a questão de se / quando a -Topção foi adicionada nginx. Foi documentado na página de manual pelo vl-homutov em 16 de junho de 2015, que se tornou parte do release v1.9.2 . É até mencionado nas notas de lançamento . A -Topção está presente em todas as nginxversões desde então, incluindo a disponível no 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
fonte
Eu não acho que existe esta bandeira, que você pode precisar atualizar a resposta
lfender6445
@ ifender6445, estou completamente confuso com o seu comentário. Eu tenho duas referências a linhas na fonte, cada uma mostrando a -Topção. A -Topção está faltando em sua instalação específica? Você pode mostrar algo para fundamentar sua reivindicação?
rubicks
sim, pode ser uma versão diferente do nginx? gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445
Entendo. parece que estou usando uma versão mais antiga do nginx, desculpas!
lfender6445
9

Olhe para o arquivo de configuração nginx para ter certeza. Este comando greps para o que estiver configurado em sua máquina:

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

na minha máquina era: `root / usr / share / nginx / www;

Thamme Gowda
fonte
8

No Mac, instale o nginx with 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;
}  
user2413075
fonte
8

Para o CentOS, Ubuntu e Fedora, o diretório padrão é /usr/share/nginx/html

MucaP
fonte
Eu quero raiz nginx var/www/html.
Dhaduk Mitesh
7

Para o AWS EC2 Linux, você encontrará aqui:

/usr/share/nginx
Vivek Sharma
fonte
5

No meu caso, foi em /usr/share/nginx/html

você pode tentar encontrar realizando uma pesquisa

find / -name html
Eduardo Dennis
fonte
5

Se você estiver no Ubuntu 14.04, poderá encontrar o diretório nginx www no seguinte caminho:

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$
Yusuf Ibrahim
fonte
Obrigado, conciso e preciso. Às vezes, a explicação mais simples é a melhor.
precisa saber é o seguinte
Eu quero raiz nginx var/www/html.
Dhaduk Mitesh
5

Você pode procurá-lo, não importa para onde eles o moveram (o administrador do sistema mudou ou a versão mais recente do nginx)

encontre / -name nginx

Dylan B
fonte
4

Se você precisar descobrir a pasta raiz pública nginx que foi definida no momento da compilação, basta verificar seu arquivo access.log.

  1. Abra o nginx.conf
  2. Encontre a diretiva log_format
  3. O valor do log_format é uma sequência de modelos usada para gravar informações no arquivo access.log . Você pode adicionar a variável $ document_root a essa sequência de modelo para registrar o local raiz www padrão em um arquivo.

Aqui está um exemplo da seção http do nginx.conf com a diretiva log_format modificada , $ document_root é adicionado no início da string:

    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. Em seguida, faça backup de todos os arquivos de configuração * .conf no diretório conf.d e crie o arquivo de configuração test.conf com as seguintes linhas:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Adicione a seguinte linha ao arquivo / etc / hosts: 127.0.0.1 localhost

    2. Recarregue a configuração do nginx: nginx -s reload

    3. Envie a solicitação GET para http: // localhost :curl http://localhost

    4. Verifique a última sequência de access.log :tail -n 1 /var/log/nginx/access.log

Aqui está o exemplo de saída deste comando, em que / etc / nginx / html é a raiz do documento padrão definida em tempo de compilação:

    /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
fonte
parece que funciona, mas não me resolveu. Um registro para * .knexusgroup.com está em 54.235.222.119, w3.knexusgroup.com , mas não registrou nenhum domínio <anything> .knexusgroup.com. Funciona onde existe uma definição adequada de diretório raiz, não consigo descobrir o que é problema, por que não consigo encontrar raiz para qualquer subdomínio que não corresponde a nenhuma configuração do ngiinx.
Ramratan Gupta 28/10
4

você pode acessar a configuração do arquivo nginx, pode ver raiz / caminho. neste padrão de nginx apache em/var/www/html

tomnyson
fonte
/var/www/htmlé a raiz da web padrão para o apache, não o nginx.
Ethan Hohensee 7/11
4

* páginas padrão alocadas na Web em var / www / html * servidor de configuração padrão etc / nginx / sites / disponível / 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 configuração padrão etc / nginx / nginx.conf

conteúdo..

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

logs de acesso padrão com clientes ip var / log / nginx / ...

user11793803
fonte
3

Apenas observe que a página de índice padrão para o servidor nginx também exibirá o local raiz. No nginx (1.4.3) no Amazon Linux AMI, você obtém o seguinte:

Esta é a página index.html padrão que é distribuída com nginx na Amazon Linux AMI. Está localizado em / usr / share / nginx / html.

Agora você deve colocar seu conteúdo em um local de sua escolha e editar a diretiva de configuração raiz no arquivo de configuração nginx /etc/nginx/nginx.conf

jboles
fonte
3

Meu nginx no Ubuntu é "nginx version: nginx / 1.9.12 (Ubuntu)" e o caminho raiz é / var / www / html /

As informações do Ubuntu são: Nenhum módulo LSB está disponível. ID do Distribuidor: Ubuntu Descrição: Ubuntu 16.04 LTS Release: 16.04 Nome de código: xenial

Na verdade, se você acabou de instalar o nginx no Ubuntu, pode ir para "/ etc / nginx / sites-available" e verificar o arquivo padrão, existe uma configuração como "root / web / root / path / goes / here". E é isso que você está procurando.

Daniel Dong
fonte
3

Você pode encontrá-lo em / var / www /, que é o diretório padrão para nginx e apache, mas pode ser alterado. etapa 1, vá para a seguinte pasta / etc / nginx / sites-available

etapa 2 edite o arquivo padrão, em que você pode encontrar um bloco de servidor sob o qual haverá uma linha nomeada como raiz, que é o que define o local.

gokul kandasamy
fonte
3

no ubuntu 19.04, encontramos no

/ usr / share / nginx / html

Arséne
fonte
2

Para nginx / 1.4.6 (Ubuntu)

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

No Ubuntu, o local do diretório raiz padrão do Nginx é /usr/share/nginx/html

Syed Abdul Qadeer
fonte
1

O padrão está relacionado à prefixopção do configurescript quando o nginx é compilado; aqui está uma amostra estranha do 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, o valor padrão de rooté definido como o htmldiretório (de acordo com a documentação da rootdiretiva ), que está dentro prefix, como pode ser verificado olhando a $document_rootvariável em um arquivo de configuração simples:

# 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

No entanto, distribuições ruins como o Debian parecem modificá-lo bastante, para mantê-lo entretido extra:

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

Portanto, nesta instância do Debian, você pode ver que a raiz está finalmente definida como /usr/share/nginx/www.

Mas como você viu com a configuração do servidor de amostra que teria $document_rootvalor sobre o http, a configuração do nginx é simples o suficiente para que você possa gravar sua própria configuração em questão de uma ou duas linhas, especificando o necessário rootpara atender às suas necessidades exatas.

cnst
fonte
o que significa root html;, quero dizer, qual é o caminho real?
Ramratan Gupta
1
@RamratanGupta, você não leu a resposta? As primeiras linhas descrevem que o caminho é relativo à configuração do prefixo em tempo de compilação.
CNST
1

Eu também tive esse problema no Digital Ocean executando um site WordPress com nginx.

Minha solução foi fazer o seguinte:

  1. Modifique o /etc/nginx/nginx.confarquivo com o seguinte:
server {
root /var/www/html;
}

Então eu tive que sudo service nginx restart

nginx -VO comando também mostra onde seu arquivo de configuração nginx também está localizado (o meu foi apontado /etc/nginx/nginx.conf)

John C
fonte
0

O Alpine Linux não possui nenhum local padrão. O arquivo /etc/nginx/conf.d/default.confdiz:

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

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

Substitua por uma linha que root /var/www/localhost/htdocsaponte para o diretório que você deseja. Então, sudo service nginx restartpara reiniciar.

Lassi
fonte
1
Não é verdade. Tentei apenas a nginx:alpineimagem mais recente e exibe conteúdo pronto /usr/share/nginx/htmlpara uso.
Jimbali
1
Parece uma imagem do Docker criada pelo projeto nginx que, por acaso, está usando o Alpine Linux como sistema operacional subjacente. Quando você instala o Alpine Linux como seu sistema operacional principal e apk add nginxinstala manualmente o nginx a partir do próprio gerenciador de pacotes da Alpine, você obtém a situação descrita na minha resposta (ou foi o caso quando tentei há alguns meses).
Lassi