我对 /etc/nginx/sites-enabled 中的这个配置文件“默认”有几个问题。它如下所示。
server
{
root /usr/share/nginx/www;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex off;
}
}
- 没有“Listen”指令,它怎么知道默认为 80
- server_name 是 localhost,另一个域如何工作?
- 为什么位置指令嵌入在服务器指令中?这是否意味着这些位置仅适用于此服务器?
- 我的配置都没有 listen 80 default_server;nginx 如何选择要使用的配置?
只是一个快速的免责声明:站点启用/站点可用布局不是来自 nginx 本身,而是来自您的包维护者。默认情况下,nginx 提供单个 nginx.conf 示例配置,这比
include
某些 linux 包中的多个文件连接更明显。以下是按顺序回答:这是因为 nginx 默认侦听端口 80(如果以非 root 身份运行则为 8000),请参阅http://nginx.org/r/listen。
默认情况下,nginx
server
在配置中使用 first 作为默认配置(并使用它来处理与其他服务器server_name
指令不匹配的域)。只要 sites-enabled/default 是您配置中唯一的服务器 - 它实际上将作为默认服务器运行。如果您要添加更多服务器 - 它可能会中断。请参阅http://nginx.org/en/docs/http/request_processing.html上的详细说明。是的,
location
指令可能仅在某些特定范围内指定server
,并且仅适用于与此服务器匹配的请求。在配置中找到的第一个服务器块将是默认值。由于
include
通配符不强加任何顺序,它可能是一些随机服务器块。