0

我的问题与此类似: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 之后)在表单中填写他们的自定义域和子域。

到目前为止,我有两种方法:

  1. 在 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 应用程序已经存在,这很难做到。

  2. 充分利用脚本将自定义域转发到子域

    第二种方法,我将自定义域 - 子域对存储在数据库(mongodb)中,然后我使用 laravel 路由将自定义域转发到子域并提供正确的页面。

    我认为第二种方法更好,但是当用户数量增加时,我不确定这种方法是否仍然可靠

我重复我的观点,对于这种情况,有没有更好的方法来自动屏蔽转发域?

如果我的问题不好或离题,我会删除它。

谢谢。

4

0 回答 0