Nginx по умолчанию общедоступное местоположение www?

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

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

где я могу найти общий веб-корень по умолчанию для nginx?

26 ответов


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

вероятно, единственный случай, который позволит вам сделать обоснованное предположение о том, что это значит для вас, если вы загрузить и скомпилировал источник самостоятельно. В этом случае пути будут относительно все . Если вы не изменили его, он по умолчанию /usr/local/nginx. Вы можете найти параметры nginx был скомпилирован с помощью via nginx -V список --prefix как первый.

С the root директива по умолчанию:html, это, конечно, приведет к /usr/local/nginx/html быть ответом на ваш вопрос.

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


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

EDIT:

в более поздних версиях путь изменился на: /usr/share/nginx/html


каталог 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;
        }

корень папку по умолчанию.


"общедоступный веб-корень по умолчанию" можно найти из вывода 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


на Mac OS X установка nginx с brew делает каталог по умолчанию:

/usr/local/var/www

Так:

root html

означает

root /usr/local/var/www/html

нет HTML-каталога, поэтому его придется создавать вручную.


вы можете просто карту для nginx!--5--> корневую папку вашего сайта:

nano /etc/nginx/sites-enabled/default

внутри по умолчанию искать root в теге сервера и измените папку по умолчанию вашего сайта, например, мои веб-сайты находятся в / 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

кстати, nginx на самом деле очень быстро!


как большинство пользователей здесь сказали, это под этим путем:

/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 зависит от того, как вы ее установили, но обычно она находится в следующих местах:

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

выполнить команду nginx -V и искать --prefix. Используйте эту запись, чтобы найти пути по умолчанию.


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

сбросить настройки:

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

то, что вы получаете, может отличаться, так как это зависит от того, как ваш nginx был настроен/установлен.

ссылки:

обновление: есть некоторая путаница в вопросе if / when -T добавлена опция nginx. Это было задокументировано на главной странице вл-хомутов на 2015 16 июня, который стал частью v1.9.2 release. Это даже упоминается в Примечания. The -T опция присутствовала в каждом nginx выпуск с тех пор, включая тот, который доступен на Ubuntu 16.04.1 LTS:

[email protected]:/# 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

для CentOS, Ubuntu и Fedora каталог по умолчанию /usr/share/nginx/html


в моем случае это было в /usr/share/nginx/html

вы можете попытаться найти, выполнив поиск

find / -name html

Если вы находитесь на Ubuntu 14.04, вы можете найти каталог nginx www по следующему пути:

[email protected]:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
[email protected]:/usr/share/nginx/html$

для Ubuntu и docker изображения:

 /usr/share/nginx/html/

просто обратите внимание, что страница индекса по умолчанию для сервера nginx также будет отображать корневое расположение. Из nginx (1.4.3) на Amazon Linux AMI вы получаете следующее:

Это индекс по умолчанию.html-страница, которая распространяется с nginx на Amazon Linux AMI. Он находится в /usr/share/nginx / html.

теперь вы должны поместить свой контент в выбранное вами место и отредактировать директиву корневой конфигурации в файле конфигурации nginx /и т. д./nginx/nginx в.conf


спрос на информацию по этой команде:

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

Я получил :root /usr/share/nginx/www;


Если вам нужно узнать общую корневую папку nginx, которая была определена во время компиляции, вы можете просто проверить свой доступ.журнал.

  1. открыть nginx.conf
  2. найти log_format директива
  3. значение log_format - строка шаблона, которая используется для записи информации в открыть.log. Вы можете добавить $document_root переменная для этого шаблона строка для регистрации корневого местоположения www по умолчанию в файл.

вот пример из раздела http nginx.conf с измененными log_format


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


мой nginx на Ubuntu " версия nginx: nginx / 1.9.12 (Ubuntu)" и корневой путь - /var/www/html/

информация Ubuntu : Никакие модули LSB не доступны. Идентификатор дистрибьютора: Ubuntu Описание: в Ubuntu 16.04 ЛЦ Релиз: 16.04 Кодовое имя: xenial

на самом деле, если вы только что установили nginx на Ubuntu, то вы можете перейти к "/etc/nginx/sites-available" и проверить файл по умолчанию, есть такая конфигурация, как "root /web/root/path/goes/here". И это то, что вы ищете для.


для AWS EC2 Linux вы найдете здесь:

/usr/share/nginx

для nginx / 1.4.6 (Ubuntu)

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

значение по умолчанию связано с на 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 отвечать ваши точные потребностямы.


вы можете искать его, независимо от того, куда они его переместили (системный администратор переместил или более новую версию nginx)

найти / - имя nginx


вы можете найти его в /var / www / это каталог по умолчанию для nginx и apache, но вы можете изменить его. Шаг 1 Перейдите в следующую папку /etc/nginx / sites-available

Шаг 2 отредактируйте файл по умолчанию, в котором вы можете найти серверный блок, под которым будет строка с именем root, которая определяет местоположение.


В Ubuntu, Расположение корневого каталога Nginx по умолчанию -/usr/share/nginx/html