首页 > 解决方案 > Nginx 配置动态 $host ENV 变量

问题描述

我正在寻找一种更好的方法来根据 Nginx 配置中的动态 $host 值设置环境变量。可以使用什么正则表达式?

例如,$preferred_hostid 具有基于 $host 的不同值。我可以使用硬代码 if 语句来设置它们的值。但是,有很多主机值。

client1.shop.abc.com

client2.shop.abc.com

clientN.shop.abc.com

server{

listen 80 default_server;

set $preferred_hostid '.abc.com';
if ($host = 'client1.shop.abc.com'){
    set $preferred_hostid '.xyz.com'
}
if ($host = 'client2.shop.abc.com'){
     set $preferred_hostid '.lmn.com'
}
if ($host = 'client3.shop.abc.com'){
     set $preferred_hostid '.hij.com'
}
}

处理这种情况的更好方法是什么?谢谢

标签: if-statementnginxserverconfig

解决方案


推荐阅读