我有两个问题想问您。
我向我的服务器添加了两个域名。现在我发现我可以登录 ftp 并写入两个域名。如何仅将一个域名设置为该服务器名称?
如何授予访问别名 phpmyadmin 的唯一域(即服务器名称)?
答案1
- FTP 没有虚拟主机的概念。因此,FTP 服务器始终可以通过 IP 地址访问,并且所有域名都映射到该 IP 地址。
因此,您需要为另一个域名获取一个单独的 IP 地址,然后将 FTP 守护程序配置为仅监听单个 IP 地址。
- 您在 Web 服务器配置中为 PHPMyAdmin 配置一个虚拟主机。
答案2
大多数协议/服务不了解主机名。
这意味着,应用程序将执行主机名到 IP 地址的名称解析,然后尝试连接到IPv4 或 IPv6 地址 返回并最初使用的主机名将会丢失. 该 IP 地址上要么有服务正在监听,要么没有。
因此,为了真正为不同的主机和/或域名提供不同的服务,每个主机/域都需要自己的 IP 地址,并且您可以将服务配置为监听一个 IP 地址而不是另一个 IP 地址。
这并不总是可行的(特别是在 IPv4 地址有限的情况下),因此有解决方法:
HTTP 是一种协议,它要求客户端一旦成功连接到 Web 服务器的 IP 地址,就Host:
在每个请求中包含一个带有原始主机名的标头。
TLSSNI 扩展相似地添加原始主机名添加到请求中。这样就可以配置 Web 服务器,使其根据网站访问者使用的原始主机名显示不同的证书和/或内容(或无内容)。
这通常称为基于名称的虚拟主机,允许服务器管理员为不同的站点启用不同的内容(例如 PHPMyAdmin 安装)。
虽然 FTP 协议也存在类似的扩展,但它是最近才添加的,当时 FTP 已经是一种古老且广泛实施的协议,从未真正被采用。
因此,大多数 FTP 客户端不会向服务器传输它们请求的主机名,即使它们这样做了,大多数 FTP 服务器也缺乏利用该主机名执行一些有用操作的能力……
另请参阅:如何使协议 foo 能够识别主机名?