nginx:$hostname 有 fqdn 版本吗?

nginx:$hostname 有 fqdn 版本吗?

我正在尝试让 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 配置文件中使用该指令。

相关内容