我正在尝试优化我的 nginx 配置,因此可以设置一个变量,并且所有位置路径都会自动更新。我有四行有问题:
server_name php.domain.com;
root /srv/web/vhosts/php/web;
error_log /srv/web/vhosts/php/logs/error.log;
access_log /srv/web/vhosts/php/logs/access.log;
Run Code Online (Sandbox Code Playgroud)
我想要实现的是设置一个变量(在本例中为“php”)并将其包含到 config.php 中。
set $variable "php";
server_name $variable.domain.com;
root /srv/web/vhosts/$variable/web;
error_log /srv/web/vhosts/$variable/logs/error.log;
access_log /srv/web/vhosts/$variable/logs/access.log;
Run Code Online (Sandbox Code Playgroud)
然而,nginx 忽略了这个配置中的变量。我做错了什么还是不可能在位置路径中使用变量?
Xav*_*cas 77
变量不能在任何地方声明,也不能在任何指令中使用。
由于set指令的文档是:
Run Code Online (Sandbox Code Playgroud)Syntax: set $variable value; Default: — Context: server, location, if
直接后果是您不能在http块中使用自定义变量。
access_log可以包含有限制的变量。其中,缺少缓冲以及不能在变量中声明前导斜杠的事实。error_log 根本不适用于变量。root 指令可以包含变量。server_name指令只允许严格$hostname值作为类似变量的符号。| 归档时间: |
|
| 查看次数: |
171607 次 |
| 最近记录: |