如何在不分配域名的情况下查看我服务器上的网站?

如何在不分配域名的情况下查看我服务器上的网站?

我有一台带有 vhosts 配置的服务器,其配置如下:

NameVirtualHost *:80

# My Virtual Hosts:
<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName domain

     DirectoryIndex index.php index.html
     DocumentRoot /var/www/domain/public

     # Custom log file locations
     LogLevel warn

     ErrorLog /var/www/domain/log/error_log
     CustomLog /var/www/domain/log/access_log combined

     <Directory "/var/www/dailysongfix/public">
         Options Indexes FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
     </Directory>
</VirtualHost>

典型的 vhost 配置对吧?好吧,我还需要在服务器上开发其他几个网站,这些网站还没有域名。如果没有域名指向它们,我该如何查看它们?我猜可能是 IP 地址和端口,但不确定如何设置。

答案1

如果你要使用命名虚拟主机,则需要分配一些名称到服务器。在您的示例中,主机将通过名称domain(来自ServerName domain指令)寻址。您可以尝试通过 IP 地址直接联系您的服务器,但这样做不会导致 Apache 触发命名虚拟主机。为此,您需要在客户端的文件http://123.45.67.89/中添加类似以下内容:/etc/hosts

123.45.67.89 域名

然后,您便可以http://domain/在浏览器中使用了。这将在本地设置名称和 IP 地址之间的映射,而无需处理 DNS。

其工作原理是,当浏览器向服务器发送 HTTP 请求时,它会在标头//中包含 URL 后面使用的任何文本Host:。Apache 会获取标头中的此文本Host:,并将其与每个命名虚拟主机中的值进行匹配ServerName。当找到匹配项时,它会将其用作服务器来处理请求的其余部分。Apache 会不是需要查找主机名和 IP 地址之间的映射,这就是为什么如果您仅更改客户端机器配置,它就会起作用。

答案2

使用“Alias”而不是VirtualHost,如果您的PHP应用程序不需要固定的URL,它应该可以正常工作。

编辑:您可以将别名添加到上面粘贴的配置中,只需将它们添加到容器之前即可。

答案3

也许不是最好的方法,但你总是可以这样做:

  1. 创建指向你服务器 IP 的 DNS 条目 *.example.com
  2. 每个 vhost 定义中的用户 ServerAlias 例如:ServerAlias something.example.com

我知道我知道——这不是你真正想要的,但我认为可以解决你的问题。

或者,如果你的虚拟主机具有完全相同的配置,只需将你的网页放在 /somewhere/{nameOfDomain} 中,然后将 /somewhere 作为另一个虚拟主机共享。然后你就可以通过以下方式访问任何分页:http://myVhost/{nameOfDomain}。如果在虚拟主机中您有一些访问规则 [可能不包含在“另一个虚拟主机”配置中],这可能会导致一些安全风险。

答案4

任何标准软件包中的 apache 都将通过 ip 地址进行设置。它基本上没有虚拟主机

相关内容