我有一个 Digital Ocean droplet,通过虚拟主机托管了 5 个网站。一切正常。它们的域名分别指向每个网站。使用 Ubuntu 14.04 和 Apache。
我想添加第六个“测试”网站,但不提供指向它的域名。我想用它来测试一些 WordPress 内容。此网站主页的物理位置是:
/var/www/test_site/html/index.html
假设我的服务器的 IP 地址是 198.51.100.55
我需要做什么才能使互联网上的任何人都可以访问这个主页?
http://198.51.100.55/test_site/html/index.html
答案1
摘要:除非您使用域名,否则无法让每个人都使用它。但如果您只是将198.51.100.55
其视为另一个域名,它将适用于大多数用户 - 至少目前如此。
我的建议是为您的测试网站创建一个域名。可能的选项包括:获取新域名、使用现有域名之一的子域名、使用来自此类域名提供商之一的免费子域名。
http://198.51.100.55/test_site/html/index.html
整个互联网永远无法访问该 URL 。
正在部署没有 IPv4 的新网络。为了允许此类网络上的客户端访问仅限 IPv4 的资源,正在使用 DNS64 和 NAT64 等技术。如果您的服务器名称是test.example.com
此类客户端的连接流程,则工作方式如下:
- 浏览器向 ISP 的 DNS 递归器发送查询,请求获取以下地址的 AAAA 记录:
test.example.com
- ISP 的 DNS 递归器向权威服务器请求
example.com
AAAA 记录test.example.com
- 权威服务器回复说不存在这样的记录。
- ISP 的 DNS 递归器会回退到 DNS64,并向权威服务器请求
example.com
A 记录test.example.com
- 权威服务器回复
198.51.100.55
- DNS 递归器将其中一个 ISP NAT64 网关的前缀(我们称之为
2001:db8:c481:4960:88df:da01::/96
IPv4 地址)连接起来。结果是2001:db8:c481:4960:88df:da01:198.51.100.55
AKA2001:db8:c481:4960:88df:da01:c633:6437
。 - DNS 递归器向浏览器发送响应,说明 的 AAAA 记录
test.example.com
是2001:db8:c481:4960:88df:da01:c633:6437
。 - 浏览器向 上的 NAT64 发送一个 SYN 数据包
2001:db8:c481:4960:88df:da01:c633:6437
。 - NAT64 通过剥离目标 IP 地址的前 96 位并用其自己的 IPv4 地址替换为源,将 SYN 数据包从 IPv6 转换为 IPv4。
- 通信继续进行,NAT64 将转换 TCP 连接中的每个数据包。
但是,当您尝试使用 IP 地址而不是域名执行此操作时,它就会崩溃。浏览器永远不会发送任何 DNS 请求,因此它永远不会知道要用198.51.100.55
替换2001:db8:c481:4960:88df:da01:c633:6437
。相反,浏览器将尝试连接到198.51.100.55
,但主机没有 IPv4 路由,因此内核将告诉浏览器服务器无法访问。
使网站可供此类网络上的用户使用(不破坏其他任何内容)的唯一方法是为您的网站提供域名。
如果您只想让您的网站仅对互联网的很大一部分人开放(随着时间的推移,这个比例会越来越小),那么您可以简单地将其视为198.51.100.55
另一个域名并相应地配置虚拟主机。
它看起来像这样:
<VirtualHost 198.51.100.55:80>
ServerName 198.51.100.55
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
答案2
放置以下内容前配置文件中的其他虚拟主机定义。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.fakesite.com
DocumentRoot /var/www/test_site/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后重新加载 Apache。