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:
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
в моем случае это было в /usr/share/nginx/html
вы можете попытаться найти, выполнив поиск
find / -name html
Если вы находитесь на Ubuntu 14.04, вы можете найти каталог nginx www по следующему пути:
yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/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, которая была определена во время компиляции, вы можете просто проверить свой доступ.журнал.
- открыть nginx.conf
- найти log_format директива
- значение 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". И это то, что вы ищете для.
для 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, которая определяет местоположение.