我目前正在构建一个也使用 websockets 的 Web 应用程序。(Web 服务器使用 Rails,socket.io 使用 Nodejs)
我已经构建了我的应用程序,使用子域来分离与 Nodejs 服务器和 Rails Web 服务器的连接。我将“socket.mysite.com”重定向到 Node 服务器,将其他所有内容重定向到 Web 服务器。
我可以在本地主机上测试此功能。我只是修改了 /etc/hosts 以包含以下内容:
127.0.0.1 socket.mysite.com 127.0.0.1 mysite.com 我知道在生产过程中我只需为 socket.mysite.com 生成一个 CNAME 记录,这也可以在我的用户的计算机上起作用。
不过,我习惯通过传递 IP 地址来测试我的应用程序。我的团队通常在自己的机器上设置服务器并进行开发。当我们想要测试各自的服务器时,我们只需传递一个 IP,例如“http://123.45.123.45“。
有了新的子域名黑客攻击,如果不修改每个测试人员的 /etc/hosts,就无法做到这一点。老实说,我并不指望我的测试人员当场修改他们的 /etc/hosts。我能做的是让我团队的每个成员都有自己的域名,并为每个团队成员创建适当的 CNAME 记录。
有没有更简单的方法可以让我在 IP 上运行我的应用程序并传递该 IP?
答案1
我合作过的团队一直都是通过 DNS 来实现这一点的。要么是实际购买的域名(类似于companynamedev.com
),要么是我们自己的内部 DNS 服务器上的非标准顶级域名(类似于companyname.dev
),要么是子域名(类似于dev.companyname.com
)
在每种情况下,为每个开发人员设置一个指向其自己机器的通配符即可解决您的问题。您甚至无需再费心传递 IP 地址。