我正在尝试让 nginx 匹配我的主机的全名(包括域名)。据我所知$hostname
仅有的包括主机名,而不是域,因此对此毫无用处。
$ hostname -f
www.example.com
我尝试过的事情:
server_name www.example.com # works
server_name $hostname # fails, only matches 'www'
server_name $hostname.example.com # fails, doesn't match anything
server_name "$hostname.example.com" # ditto
server_name ${hostname}.example.com # ditto
server_name $(hostname).example.com # ditto
除了将我的主机名硬编码到我的 nginx.conf 文件中(我需要避免)之外,我还有什么选择?
答案1
作为一种解决方法,您可以将以下行添加到 nginx 启动脚本中:
echo -e "server_name `hostname -f`;\n" > /etc/nginx/hostname.conf
然后include hostname.conf;
在 nginx 配置文件中使用该指令。