NGinx за замовчуванням загальнодоступне www?


302

Я працював з Apache раніше, тому я знаю, що загальнодоступний веб-корінь за замовчуванням зазвичай /var/www/.

Нещодавно я почав працювати з nginx, але не можу знайти загальнодоступний веб-корінь за замовчуванням.

Де я можу знайти загальнодоступний веб-корінь для nginx?

Відповіді:


166

Якщо ваша конфігурація не включає root /some/absolute/path;оператор, або він включає такий, який використовує відносний шлях на зразок root some/relative/path;, то отриманий шлях залежить від параметрів часу компіляції.

Напевно, єдиний випадок, який дозволив би вам здогадуватися про те, що це означає для вас, якщо ви завантажили та склали джерело самостійно. У цьому випадку шляхи будуть відносно того, що --prefixбуло використано. Якщо ви його не змінили, він за замовчуванням /usr/local/nginx. Ви можете знайти параметри, з яких nginx був складений за допомогою via nginx -V, він відображається --prefixяк перший.

Оскільки ця rootдиректива за замовчуваннямhtml , це, звичайно, призведе /usr/local/nginx/htmlдо відповіді на ваше запитання.

Однак якщо ви інсталювали nginx будь-яким іншим способом, усі ставки будуть зняті. Ваш дистрибутив може використовувати зовсім інші шляхи за замовчуванням. Навчитися розбиратися, які типові дефолти використовує ваш вибір для речей - це зовсім інше завдання.


32
Ви можете, можливо, дати підказку, що ви можете використовувати "nginx -V" (пропис V) для виявлення аргументів конфігурації, використовуваних для компіляції nginx.
kaufholdr

1
@kaufholdr правильно ви знайдете --prefix @ Gnarfoz згадується схожий на цей prefix = / USR / частки / Nginx
Гній

6
Це також залежить від того, в якій ОС знаходиться установка, для Amazon Linux каталог: / usr / share / nginx / html
jeffmcneill

Шлях --prefix не завжди є правильним. У моїй debian 9 nginx встановити шлях префікса був "/ var / www / html", але, як виявляється, акустичним шляхом за замовчуванням був "/ usr / share / nginx / html". Переглядаючи файл конфігурації за замовчуванням у / etc / nginx / sites-available / default, шлях показав такий самий, як і --prefix шлях. Але файл конфігурації, розташований за адресою /etc/nginx/conf.d/default.conf, вказав корінь як / usr / share / nginx / html. Файл default.conf має перевагу над звичайним файлом за замовчуванням. Не забудьте перевірити обидва файли конфігурації, або можливо ви працюєте з неправильним коренем.
Печера

1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'дає вам ДОМАШНІСТЬ nginx.
sjas

436

Якщо ви встановлюєте в Ubuntu за допомогою apt-get, спробуйте /usr/share/nginx/www.

Редагувати:

В останніх версіях шлях змінився на: /usr/share/nginx/html

РЕДАКЦІЯ 2019:

Можна також спробувати /var/www/html/index.nginx-debian.html.


113
nginx 1.4.1 в Ubuntu знаходиться в / usr / share / nginx / html
Nick Desaulniers

Я щойно встановив nginx на Raspberry, каталог за замовчуванням той самий, написаний Lufix +1. На raspbian завантажено з apt-get
Mitro

4
Щойно підтвердив, що на CentOS 7.0 це також / usr / share / nginx / html
djhaskin987

2
Debian apt-get, check / etc / nginx / available-sites / default , Я знайшов шлях там.
Chris.Zou

7
ubuntu 16 /var/www/html/index.nginx-debian.html
нехай яскравий

65

Каталог Nginx за замовчуванням у Debian є /var/www/nginx-default.

Ви можете перевірити файл: /etc/nginx/sites-enabled/default

і знайти

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

Корінь - це місце за замовчуванням.


5
У CentOS я виявив, що немає / etc / nginx / sites-enable / folder. є /etc/nginx/conf.d/ і там два файли server.conf та virtual.conf мають ці дані про сервер. На це також можна пильнувати.
Нафіс Ахмад

1
Щоб додати коментар Nafis, ім'я файлу в каталозі conf.d має закінчуватися .conf, інакше вони не будуть підбиратися.
Етан Гогензе

1
Це стосується лише якщо ввімкнено сайт за замовчуванням та відповідає запиту. Інакше коренем за замовчуванням є html.
OrangeDog

@OrangeDog Як перевірити, чи default siteввімкнено це?
Тімо

1
@Timo ця відповідь говорить як
OrangeDog

43

'загальнодоступний веб-корінь за замовчуванням' можна знайти з 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

значення --prefix - це відповідь на питання. для зразка над коренем є / var / lib / nginx


1
Так, найкраще та крос-платформне.
Джессі Адельман

Це не завжди правильно "--prefix" може використовуватися в деяких системах, але не у всіх. Я погоджуюся, що nginx -V надає вам багато інформації, яка допоможе відслідковувати, де знаходяться файли, але це залежить від ОС. IE у FreeBSD не в тому, що є "- prefix", але "/ usr / local / www", а в деяких linux-дистрибутивах він також може відкладатись. Найкраще заглянути в конфігурацію.
Майк

"--prefix" - це змінна, визначена стандартом GNU - див. gnu.org/prep/standards/html_node/Directory-Variables.html .
Серж S

"--prefix" - це змінна, визначена стандартом GNU - див. gnu.org/prep/standards/html_node/Directory-Variables.html . nginx відповідає стандартам. Якщо у файлі конфігурації ви не визначаєте корінь або місцеположення (залежить від --conf-path), префікс покаже, де знаходиться "загальнодоступний веб-корінь" за замовчуванням. І це не залежить від ОС, хоча пакет, що постачається з дистрибутивом ОС, також може надати конфігурацію, яка в свою чергу переробляє "загальнодоступний веб-корінь" за замовчуванням.
Серж S

так що алгоритм: шукайте --conf-шлях у nginx -V висновку. якщо місце розташування / або корінь не визначено в налаштуваннях - використовуйте --prefix для розташування загальнодоступних веб-кореневих файлів за замовчуванням.
Серж S

25

На Mac OS X встановлення nginx з brew робить каталог за замовчуванням:

/usr/local/var/www

Тому:

root html

засоби

root /usr/local/var/www/html

Немає html-каталогу, тому його потрібно було б створити вручну.


1
+1 для згадки про macOS та домашню мову. Однак я виявив, що це root html, index.htmlі 50x.htmlвводиться безпосередньо /usr/local/var/www. Тому я сумніваюся у існуванні htmlпапки. Чи можете ви мені допомогти з цим?
iplus26

3
"Заварити інформацію nginx" Подає докроотвід, вказаний у висновку. Але вказівка ​​"root html" у nginx-конфігурації змінює docroot для цього nginx-конфігурації.
freegnu

1
Для мене (MAC OS X El Capitan 10.11.5) і варити (1.1.5) каталог був /usr/local/Cellar/nginx/1.10.2_1/html де 1.10.2_1 є версія nginx.
Йогеш Ядав

2
На моєму вариві встановіть каталог «Підвал» - це симпосилання: /usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/і nginx -V показує: --prefix=/usr/local/Cellar/nginx/1.12.0_1так root htmlперенаправлено через це посилання.
Марк Едінгтон

@ iplus26 html-каталог уже доступний /usr/local/Cellar/nginx/1.12.2_1/html, я думаю / usr / local / var / www просто посилання
Kanagavelu Sugumar

21

Ви можете просто зіставити кореневу папку nginx на розташування вашого веб-сайту:

nano /etc/nginx/sites-enabled/default

всередині файлу за замовчуванням шукайте корінь у тезі сервера та змініть папку за замовчуванням вашого веб-сайту, наприклад мої веб-сайти за адресою / var / www

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

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

Коли я оцінював nginx, apache2 та lighttpd, я перемістив їх на свій веб-сайт, що сидить за адресою / var / www . Я вважав це найкращим способом ефективної оцінки.

Тоді ви можете запустити / зупинити обраний сервер і побачити, який працює найкраще.

напр

service apache2 stop
service nginx start

Btw, nginx насправді дуже швидко!


19

як сказала більшість користувачів тут, саме під цим шляхом:

/usr/share/nginx/html

Це шлях за замовчуванням, але ви можете зробити свій.

все, що вам потрібно, це створити його в кореневому дереві веб-сервера і надати йому деякі дозволи "не 0777", а лише для одного користувача і видимі лише для цього користувача, але кінець шляху видно всім з кінця шляху це те, що ваші файли та папки будуть переглядатися загальнодоступними.

наприклад, ви можете зробити так, як це:

home_web/site1/public_html/www/

щоразу, коли ви робите віртуальний хост у Nginx, ви можете налаштувати свій власний кореневий шлях, просто додайте щось подібне до блоку вашого сервера:

 server {
    listen  80;
        server_name  yoursite.com;

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

Так, ти маєш рацію. Я щойно встановив Nginx на своєму centos7 і помітив, що шлях за замовчуванням - це /usr/share/nginx/html/папка. Чи є причина взагалі змінити цей шлях (з безпеки чи будь-яких інших причин)? Чи добре це залишити його в папці за замовчуванням, якщо я буду єдиним користувачем і якщо я збираюся розмістити лише 1 веб-сайт у ньому?
Ніл

Не зважайте на моє останнє запитання. Я в кінцевому підсумку створив для нього окремі папки, оскільки подумав, що краще так просто, якщо я хочу додати в цій програмі різні архіви в майбутньому. Так простіше. Ура :)
Neel

11

Веб-папка для nginx за замовчуванням залежить від того, як ви її встановили, але зазвичай вона знаходиться в таких місцях:

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

10

Для зображень Ubuntu та docker:

 /usr/share/nginx/html/

Цікаво, скажіть, що я цього не знав, як би я знайшов правильне розташування? На це є багато різних відповідей
Рой Намір

Наскільки я пам’ятаю, я шукав «nginx» (щось на кшталт find / -name nginx) і знайшов всередині цього каталогу (або в його підкаталозі) документ, який з’явився в моєму браузері.
DimiDak

9

Виконайте команду nginx -V і шукайте --prefix. Використовуйте цей запис, щоб знайти свої контури за замовчуванням.


9

Дамп конфігурації:

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

Те, що ви отримуєте, може бути різним, оскільки це залежить від того, як nginxбула налаштована / встановлена ваша .

Список літератури:

Оновлення. Існує деяка плутанина щодо питання, якщо / коли -Tопція була додана до nginx. Це було задокументовано на сторінці man від vl-homutov 2015 року 16 червня, яка стала частиною випуску v1.9.2 . Про це навіть згадується в примітках до випуску . Ця -Tопція присутня в кожному nginxвипуску з тих пір, включаючи доступний на 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

я не думаю, що цей прапор існує, можливо, вам доведеться оновити відповідь
lfender6445

@ ifender6445, я ретельно плутаю ваш коментар. У мене є два посилання на рядки в джерелі, кожен з яких показує -Tваріант. Чи -Tвідсутня опція у вашій конкретній установці? Чи можете ви показати що-небудь, щоб обґрунтувати свою претензію?
рубіки

так, це може бути інша версія nginx? gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445

я бачу. схоже, я використовую старішу версію nginx, вибачте!
lfender6445

9

Переконайтесь у конфігураційному файлі nginx, щоб переконатися. Ця команда поєднує те, що налаштовано на Вашій машині:

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

на моїй машині було: `root / usr / share / nginx / www;


8

На Mac встановіть nginx з 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;
}  



5

У моєму випадку це було в /usr/share/nginx/html

ви можете спробувати знайти, здійснивши пошук

find / -name html

5

Якщо ви перебуваєте на Ubuntu 14.04, ви можете знайти каталог nginx www за наступним шляхом:

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

Спасибі, коротка лаконічна та точна. Іноді найпростішим поясненням є найкраще.
ЧомуAyala

Я хочу з корінця nginx var/www/html.
Дахук Мітеш

5

Ви можете шукати його, незалежно від того, куди вони перемістили його (системний адміністратор переміщений чи новіша версія nginx)

find / -name nginx


4

Якщо вам потрібно знайти публічну кореневу папку nginx, яка була визначена під час компіляції, ви можете просто перевірити файл access.log.

  1. Відкрийте nginx.conf
  2. Знайдіть директиву log_format
  3. Значення log_format - це рядок шаблону, який використовується для запису інформації у файл access.log . Ви можете додати змінну $ document_root до цього рядка шаблону, щоб увімкнути файл кореневого розташування за замовчуванням у файл.

Ось приклад з http розділу nginx.conf із модифікованою директивою log_format , $ document_root додається на початку рядка:

    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. Потім створіть резервні копії всіх файлів конфігурації * .conf в каталозі conf.d і створіть там файл конфігурації, test.conf з такими рядками:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Додайте наступний рядок у файл / etc / hosts: 127.0.0.1 localhost

    2. Перезавантажте конфігурацію nginx: nginx -s reload

    3. Надіслати GET запит на http: // localhost :curl http://localhost

    4. Перевірте останній рядок access.log :tail -n 1 /var/log/nginx/access.log

Ось зразок виводу цієї команди, де / etc / nginx / html - корінь документа за замовчуванням, визначений під час компіляції:

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

здається, це працює, але мене не вирішило. Запис для * .knexusgroup.com знаходиться на 54.235.222.119, w3.knexusgroup.com, але він не ввійшов до жодного домену <anything> .knexusgroup.com. Він працює там, де є правильне визначення кореневого режиму, я не в змозі розібратися, що є проблемою, чому я не можу знайти корінь для будь-якого піддомену, який не відповідає жодному конфігурації ngiinx.
Рамратан Гупта

4

Ви можете отримати доступ до конфігурації файлу nginx, Ви можете бачити root / path. у цьому замовчуванні nginx apache at/var/www/html


/var/www/html- веб-корінь за замовчуванням для apache, а не nginx.
Етан Гогензе

4

* веб-сторінок за замовчуванням, виділених у var / www / html * сервер конфігурації за замовчуванням тощо / 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;
    }
}

* сервер конфігурації за замовчуванням тощо / nginx / nginx.conf

зміст ..

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

журнали доступу за замовчуванням з ip-клієнтами var / log / nginx / ...


3

Зауважимо лише, що сторінка індексу за замовчуванням для сервера nginx також відображатиме кореневе розташування. З nginx (1.4.3) на Amazon Linux AMI ви отримуєте наступне:

Це сторінка index.html за замовчуванням, яка поширюється за допомогою nginx на Amazon Linux AMI. Він розташований у / usr / share / nginx / html.

Тепер слід розмістити свій вміст у вибраному вами місці та відредагувати кореневу директиву конфігурації у файлі конфігурації nginx /etc/nginx/nginx.conf


3

Мій nginx в Ubuntu - це "версія nginx: nginx / 1.9.12 (Ubuntu)", а кореневий шлях - / var / www / html /

Інформація про Ubuntu така: LSB-модулі не доступні. Ідентифікатор дистриб'ютора: Ubuntu Опис: Ubuntu 16.04 LTS Реліз: 16.04 Кодове ім'я: xenial

Насправді, якщо ви щойно встановили nginx на Ubuntu, тоді ви можете перейти до "/ etc / nginx / sites-available" і перевірити файл за замовчуванням, є конфігурація типу "root / web / root / path / go / go / here". І саме це ви шукаєте.


3

Ви можете знайти його в / var / www /, який є типовим каталогом для nginx та apache, але ви можете змінити його. крок 1 перейдіть до наступної папки / etc / nginx / sites-available

крок 2 відредагуйте файл за замовчуванням, щоб ви могли знайти серверний блок, під яким буде рядок з ім'ям root, саме це визначає місцеположення.



2

Для nginx / 1.4.6 (Ubuntu)

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


1

За замовчуванням пов'язано prefixпараметр configureсценарію при компіляції nginx; ось якийсь дивний зразок від 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

Згодом, значення за замовчуванням rootбуде встановлено в htmlкаталог (відповідно до документацією rootдирективи ), що трапляється в межах prefix, як можна перевірити, подивившись на $document_rootзмінну з допомогою простого конфігураційного файлу:

# 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

Однак злі розповсюдження на зразок Debian, здається, трохи його модифікують, щоб не розважатись:

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

Отже, на цьому екземплярі Debian ви бачите, що корень нарешті встановлений /usr/share/nginx/www.

Але, як ви бачили із зразком конфігурації сервера, який би обслуговував його $document_rootзначення в режимі http, налаштування nginx досить проста, щоб ви могли написати власну конфігурацію в одному або двох рядках, вказавши необхідні rootдля задоволення ваших точних потреб.


що це означає root html;, я маю на увазі, що таке реальний шлях?
Рамратан Гупта

1
@RamratanGupta, ти не прочитав відповіді? У перших рядках зазначається, що шлях відносно налаштування префікса часу компіляції.
cnst

1

У мене також виникла ця проблема на Digital Ocean, яка запускає веб-сайт WordPress з nginx.

Моє рішення полягало в наступному:

  1. Змініть /etc/nginx/nginx.confфайл за допомогою наступного:
server {
root /var/www/html;
}

Мені тоді довелося sudo service nginx restart

nginx -Vкоманда також показує, де також знаходиться ваш конфігураційний файл nginx (мій вказували /etc/nginx/nginx.conf)


0

У Alpine Linux взагалі немає місця за замовчуванням. У файлі /etc/nginx/conf.d/default.confнаписано:

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

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

Замініть ті рядком, який би root /var/www/localhost/htdocsвказував на потрібний каталог. Потім sudo service nginx restartперезапустити.


1
Неправда. Щойно спробував останнє nginx:alpineзображення, і воно подає вміст з /usr/share/nginx/htmlкоробки.
Magicode

1
Це звучить як зображення Докера, зроблене проектом nginx, який, як буває, використовує Alpine Linux як основну ОС. Коли ви встановлюєте Alpine Linux в якості своєї основної ОС і робите apk add nginxвручну інсталювати nginx з власного менеджера пакунків Alpine, ви отримуєте ситуацію, описану в моїй відповіді (або це було так, коли я намагався це зробити пару місяців тому в будь-якому випадку).
Лассі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.