在我的虚拟主机中,我有:
root /var/www/$server_name/public_html;
index index.php;
access_log /var/log/nginx/$server_name.access.log;
error_log /var/log/nginx/$server_name.error.log debug;
Run Code Online (Sandbox Code Playgroud)
对于根和访问日志的$server_name
工作。它不适用于错误日志。
我看到它是由 root 而不是 pi 设置的(我使用pi而不是data-www)我该如何解决这个问题?
nginx/1.13.5
小智 5
据我所知,error_log
即使您可以在其中使用变量,仍然不允许使用它们access_log
(因为您的屏幕截图显示在您的场景中正常工作)。
除此之外,您几乎应该总是使用$host
它,因为它是唯一能保证说出一些合理内容的变量,而不管用户代理的行为如何。
您可以在nginx 文档中检查 $host 和 $server_name 之间的区别:
$host
: 按此优先顺序:请求行中的主机名,或“Host”请求头字段中的主机名,或与请求匹配的服务器名。
$server_name
:接受请求的服务器的名称。它包含server_name
处理请求的虚拟主机的 ,正如它在 nginx 配置中定义的那样。如果服务器包含多个 server_names,则此变量中只会出现第一个。
由于您必须考虑用户代理可能会做的所有可能的事情,然后形成一个 HTTP 请求(古老的 HTTP/1.0 请求和现代写得不好的软件可能一直发生),您应该考虑仅使用$host
变量预期目的。
值得一提的access_log
是由处理ngx_http_log_module
,而 error_log的处理方式与ngx_core_module
.
归档时间: |
|
查看次数: |
1665 次 |
最近记录: |