我的网站有一个包含子域名的网站(通配符子域名)
client1.test.com
client2.test.com
我希望我的客户可以使用他们自己的域名。
需要将哪种记录添加到点
client1.com => client1.test.com
shop.client1.com => client1.test.com
我正在为www.test.com使用cloudflare的免费计划,但我愿意接受 如果不能完成就改变它
答案 0 :(得分:5)
CNAME记录适用于此。您还可以使用A记录指向与test.com相同的IP
答案 1 :(得分:3)
您需要修改cname以将其域名提供商上的client1 IP重定向到client1.test.com
您需要修改cname以将其域名提供商上的client2 IP重定向到client2.test.com
云端闪光灯上的CNAME设置仅适用于付费方案
https://support.cloudflare.com/hc/en-us/articles/200168706-How-do-I-do-CNAME-setup-
答案 2 :(得分:3)
您只需要了解DNS记录及其工作原理。您可以为this here找到一个很好的资源,其中最重要的是您的案例中的“A记录”。
总而言之,在您的客户将自己的域指向您的系统之前,他们必须将其域主机记录配置为指向您的服务器/ IP地址。
对于您而言,您不必在Cloudflare中执行任何操作,而是在服务器上执行任何操作。假设您已将网络服务器配置为识别client1.test.com但client1决定使用域client1.com和shop.client1.com,您必须为client1.test.com设置您的网络服务器块以识别这两个域别名除了原始的子域名。
使用Nginx,这将看起来像:
Server {
...
ServerName client1.test.com shop.client1.com client1.com
...
如果您正在寻找如何自动执行此过程,可以查看this script。
答案 3 :(得分:1)
也许您可以像这样使用CNAME记录:
client1.com CNAME client1.test.com.
shop.client1.com CNAME client1.test.com.
最后的点是告诉DNS不要使用默认域名完成您的输入。
如果你不必使用DNS进行重定向,你也可以自由使用你甚至可以通过IPTables Forwarding来实现。擅长这个解决方案......你可以决定哪个端口指向哪个IP ...这样你可以将webserver转发到你的客户服务器,但是将Mail保留在你的服务器上(例如)
此处如何将端口转发到具有外部IP的另一台主机:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $port -j LOG --log-prefix="PreRouting $port..:"
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $port -j DNAT --to $ip:$port
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo iptables -A FORWARD -p tcp -i eth0 -o eth0 -s $ip --sport $port -j LOG --log-prefix="S Forward $port.."
sudo iptables -A FORWARD -p tcp -i eth0 -o eth0 -s $ip --sport $port -j ACCEPT
sudo iptables -A FORWARD -p tcp -i eth0 -o eth0 -d $ip --dport $port -j LOG --log-prefix="D Forward $port.."
sudo iptables -A FORWARD -p tcp -i eth0 -o eth0 -d $ip --dport $port -j ACCEPT
您还必须添加此命令以在网络堆栈上设置:
sudo sysctl -w net.ipv4.ip_forward=1
这将在默认的DENY IPTables设置中有效。