1

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

目前,我的应用程序使用主机标头(拆分点以获取account-456位)来获取帐户 ID,然后基于此设置主题。我假设使用这种新的配置,我会检查他们的域的主机头(我会让他们进入应用程序),查询域(及其所属的帐户)并设置他们的主题那样。它是否正确?

4

2 回答 2

0

为了回答您的问题,先生,可以在 Nginx 中为通配符子域进行站点配置,并且 www.example.com 的 CNAME 指向 acct-123.yourappsdomain.com 将导致对前者的访问被处理像后者。由您负责监听 www.example.com 的主机名,在数据库中查找域的帐户信息,并加载正确的内容。基本上,您将使用与提取 CNAME 域的子域相同的逻辑。

于 2012-02-25T05:09:57.043 回答
0

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

编辑:

或者

您可以按照此处的建议使用地图,但我认为它会降低运行时性能。

于 2013-10-07T09:59:12.833 回答