针对SaaS的Nginx conf - 有一种很好的方式来处理这种情况吗?

时间:2012-02-24 01:15:54

标签: nginx hostname cname

我正在开发一个网络应用程序。用户将注册并将被分配一个子域,允许他们通过account-456.myappsdomain.com访问内容。拥有该子域的意图不是让他们直接访问它。相反,他们会被告知要将www.their-own-site.com的CNAME指向account-456.myappsdomain.com,以便他们能够访问自己的域并直接在自己的域中查看其内容。是否可以使用Nginx创建一个允许这样做的配置,而无需每次用户注册帐户时都必须编辑配置或添加虚拟主机?

目前,我的应用使用主机标头(在点上拆分以获取account-456位)来获取帐户ID,然后根据该标识设置主题。我假设使用这种新的配置,我会检查其域的主机头(我将让它们进入应用程序),查询域(及其所属的帐户)并设置其主题那样。这是对的吗?

2 个答案:

答案 0 :(得分:0)

要回答您的问题,先生,可以在Nginx中进行外卡子域的站点配置,指向acct-123.yourappsdomain.com的www.example.com的CNAME将导致访问前者被视为后者。您可以自己监听www.example.com的主机名,在数据库中查找域的帐户信息,并加载正确的内容。基本上,您使用相同的逻辑来提取CNAME域的子域。

答案 1 :(得分:0)

我面临着类似的情况。我的计划是从应用程序生成nginx config server块(我知道哪个域是谁)。每次添加,删除或更改租户时,都会重新生成conf并重新加载服务器。用像jinja这样的东西来模仿它可能更干净。

编辑:

OR

您可以按建议map使用here,但我认为它会对运行时性能进行处罚。