根据Nginx wiki,该$hostname变量设置为 gethostname 返回的机器主机名。
我试过了,虽然gethostname我的 Debian 盒子不起作用,但它仍然正确地返回主机。然后我尝试使用该变量$hostname来设置server_name,但这不起作用。
为什么会这样,还有其他方法可以实现吗?
server {
listen 80;
autoindex off;
server_name static.$hostname;
root /var/www/static;
access_log /var/log/nginx/localhost.access.log;
location / {
index index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}
Run Code Online (Sandbox Code Playgroud)
nginx 中的大多数变量只存在于运行时,而不存在于配置时。
因此,大多数变量不能与server_name指令一起使用。既然$hostname是一个恒定值,有一个明确的检查准确 $hostname的server_name处理程序。
它只允许server_name将 设置为$hostname,而不允许设置为static.$hostname。您可以修补源代码以使其支持该功能(ngx_http_core_module.c, 查找$hostname),但是您不能使用现有代码来执行此操作。
| 归档时间: |
|
| 查看次数: |
24598 次 |
| 最近记录: |