我的问题与此类似:Domain masking/pointing to a directory of a web application? .
我只是想澄清一下,还有其他方法吗?哪个更好?
我正在使用 laravel、nginx、mongodb(并绑定以模拟 DNS 配置)。
假设我在 mydomain.com 中有 Web 应用程序,每个用户都可以创建自己的页面并获取子域并向其中添加自定义域。
例如customdomain.me
转发到mypage.domain.com
此过程应在用户提交新的自定义域时自动完成(用户可以将多个自定义域添加到 1 个子域)。
我所做的是将 DNS 通配符设置为使用 Bind 将所有子域指向 mydomain.com 并配置 nginx.conf 文件,使用server_name _;
该文件将捕获所有请求。然后我使用 laravel 在 php 中创建脚本以正确打开每个子域的页面。
现在我想自动化域掩码,用户只需要(首先将他们的域指向我的 IP 之后)在表单中填写他们的自定义域和子域。
到目前为止,我有两种方法:
在 nginx 中使用 proxy_pass
server { listen 80; server_name customdomain.me; location / { proxy_pass http://rizky.domain.com; proxy_set_header Host rizky.domain.com; } }
我认为,在我的场景中,这种方法并不好,因为我必须为每个自定义域(或至少为每个用户)添加新的块服务器,并在每次更改时重新加载 nginx,如果 Web 应用程序已经存在,这很难做到。
充分利用脚本将自定义域转发到子域
第二种方法,我将自定义域 - 子域对存储在数据库(mongodb)中,然后我使用 laravel 路由将自定义域转发到子域并提供正确的页面。
我认为第二种方法更好,但是当用户数量增加时,我不确定这种方法是否仍然可靠
我重复我的观点,对于这种情况,有没有更好的方法来自动屏蔽转发域?
如果我的问题不好或离题,我会删除它。
谢谢。