默认的公共www位置?

我以前使用过Apache,所以我知道默认的公共web根通常是/var/www/

我最近开始使用nginx,但我似乎找不到默认的公共web根。

我在哪里可以找到nginx的默认公共web根?

844705 次浏览

nginx的默认web文件夹取决于你如何安装它,但通常它在这些位置:

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

如果你的配置不包括root /some/absolute/path;语句,或者它包括一个使用相对路径的语句,如root some/relative/path;,那么结果路径取决于编译时选项。

如果你下载并自己编译源代码,可能唯一能让你对这对你来说意味着什么做出有根据的猜测的情况是。在这种情况下,路径将相对于所使用的--prefix。如果你没有改变它,它默认为/usr/local/nginx。你可以通过nginx -V找到nginx编译的参数,它将--prefix列为第一个。

由于__ABC0指令默认为html,这当然会导致你的问题的答案是/usr/local/nginx/html

然而,如果你以任何其他方式安装nginx,所有的赌注都是失败的。您的发行版可能使用完全不同的默认路径。学习弄清楚您所选择的发行版使用哪种默认值完全是另一项任务。

如果使用apt-get在Ubuntu上安装,请尝试/usr/share/nginx/www

编辑:

在最近的版本路径已更改为: /usr/share/nginx/html < / p >

2019编辑:

也可以在/var/www/html/index.nginx-debian.html中尝试。

Debian上Nginx的默认目录是/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服务器的默认索引页面也会显示根位置。从Amazon Linux AMI上的nginx(1.4.3),您可以得到以下内容:

这是默认的index.html页面,在Amazon Linux AMI上与nginx一起分发。它位于/usr/share/nginx/html。

你现在应该把你的内容放在你选择的位置,并编辑nginx配置文件/etc/nginx/nginx.conf中的根配置指令

正如这里的大多数用户所说,它是在这个路径下:

/usr/share/nginx/html

这是默认路径,但您可以创建自己的路径。

你所需要的是在web服务器根树中创建一个,并赋予它一些权限“不是0777”,只对一个用户和该用户可见,但路径的末尾对每个人都可见,因为路径的末尾是你的文件和文件夹将被公众查看的。

例如,你可以这样做:

home_web/site1/public_html/www/

无论何时你在Nginx中创建一个虚拟主机,你都可以自定义自己的根路径,只需在服务器块中添加如下内容:

 server {
listen  80;
server_name  yoursite.com;


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

你可以简单地将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

顺便说一下,nginx实际上非常快!

查看nginx的配置文件。

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

在我的机器上它是:root /usr/share/nginx/www;

在我的情况下,它是/usr/share/nginx/html

您可以尝试通过执行搜索来查找

find / -name html

转储配置:

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

你得到的可能是不同的,因为它取决于你的nginx是如何配置/安装的。

引用:

更新:关于是否/何时将-T选项添加到nginx的问题有一些混淆。它在2015年6月16日由vl-homutov记录在手册页中,成为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

在Mac OS X上,使用brew安装nginx会使默认目录:

/usr/local/var/www

所以:

root html

意味着

root /usr/local/var/www/html

没有html目录,所以必须手动创建。

在Mac上使用brew安装nginx:

/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 -V并查找--prefix. conf。使用该条目定位默认路径。

'default public web root'可以在nginx -V output中找到:

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

前缀值是问题的答案。对于上面的示例,根目录是/var/lib/nginx

我的nginx on Ubuntu是"nginx version: nginx/1.9.12 (Ubuntu)" 根路径为/var/www/html/

Ubuntu信息是: 没有LSB模块可用。 分销商ID: Ubuntu 描述:Ubuntu 16.04 LTS 版本:16.04 代号:主客关系的< / p >

实际上,如果你只是在Ubuntu上安装了nginx,那么你可以去“/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;

如果你使用的是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,你可以看到root /path。在这个 默认nginx apache在/var/www/html

如果你需要找到编译时定义的nginx公共根文件夹,你可以检查你的access.log文件。

  1. 打开nginx.conf
  2. 找到log_format指令
  3. log_format的值是一个模板字符串,用于将信息写入access.log文件。你可以在这个模板字符串中添加document_root美元变量,将默认的www根位置记录到一个文件中。

下面是一个来自nginx.conf的http部分的例子,修改了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.d目录下的所有配置文件*.conf,并创建配置文件test.conf,代码如下:

    server{
    listen 80;
    server_name localhost;
    }
    
    1. 在/etc/hosts文件中增加如下行

    2. 重新加载nginx配置:nginx -s reload

    3. 发送GET请求到http://localhost: curl http://localhost

    4. 检查access.log:tail -n 1 /var/log/nginx/access.log的最后一个字符串

    5. 李< / ol > < / >

    下面是该命令的示例输出,其中/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" "-"
    

默认值与nginx编译时configure脚本的prefix选项相关;下面是一些来自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

但是,正如你在通过http提供$document_root值的示例服务器配置中所看到的,配置nginx非常简单,你可以在一两行代码中编写自己的配置,指定所需的root来满足你的确切需求。

对于CentOS、Ubuntu和Fedora,默认目录为/usr/share/nginx/html

对于Ubuntu和docker映像:

/usr/share/nginx/html/

在Ubuntu < p >, Nginx默认根目录位置为/usr/share/nginx/html

你可以搜索它,不管他们把它移动到哪里(系统管理移动或更新版本的nginx)

找到/ -name nginx

你可以在nginx和apache的默认目录/var/www/中找到它,但你可以改变它。 步骤1进入“/etc/nginx/sites-available

”文件夹

步骤2编辑默认文件,您可以在其中找到一个服务器块,其中将有命名为root的行,这是定义位置的内容。

在ubuntu 19.04中,我们发现它在

/usr/share/nginx/html

我在Digital Ocean用nginx运行WordPress网站时也遇到了这个问题。

我的解决方案如下:

  1. 用以下方法修改/etc/nginx/nginx.conf文件:
server {
root /var/www/html;
}

然后我必须sudo service nginx restart

nginx -V命令还显示了你的nginx配置文件的位置(我的是指向/etc/nginx/nginx.conf)

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重新启动。

*默认页面web分配在var/www/html *默认配置服务器etc/nginx/sites/ available /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;
}
}

*默认配置服务器etc/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/…

浏览文件 $ cat /etc/nginx/nginx.conf

在HTTP部分下的文件中——>服务器——比;根

在这里,您将看到根目录的默认位置和所有错误页面。