我如何查看我的服务器上的网站,而不分配域名?

我有一个服务器与虚拟主机conf看起来像这样:

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> 

一个典型的虚拟主机的权利? 那么我也需要在服务器上开发一些其他的网站,这些网站还没有挂钩到他们的域名。 我怎样才能查看他们没有一个域指向他们? 我猜测可能是IP地址和端口,但不知道如何设置。

如果你打算使用命名的虚拟主机,你需要给服务器分配一些名字。 在您的示例中,主机将通过名称domain (来自ServerName domain指令)进行寻址。 你可以尝试通过IP地址直接联系你的服务器,像http://123.45.67.89/但不会导致Apache触发指定的虚拟主机。 要做到这一点,你需要添加这样的东西到客户端上的/etc/hosts文件:

  123.45.67.89域 

那么,你应该可以在浏览器中使用http://domain/ 。 这可以在本地build立名称和IP地址之间的映射,而不必与DNS混淆。

这种方式的工作原理是当浏览器向服务器发送HTTP请求时,它在Host:标头中的URL中包含所使用的任何文本。 Apache将此文本放在Host:头中,并将其与每个指定的虚拟主机中的ServerName值进行匹配。 当它find一个匹配时,它将使用它作为服务器来处理请求的其余部分。 Apache不需要查找主机名和IP地址之间的映射关系,这就是为什么在只更改客户端机器configuration的情况下可以工作。

使用“别名”而不是VirtualHost,如果你的PHP应用程序不需要一个固定的URL,它应该工作得很好。

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

也许不是最好的方式去,但你总是可以做到如下:

  1. 创build指向您的服务器的IP的DNS入口* .example.com
  2. 用户ServerAlias在每个虚拟主机定义例如:ServerAlias something.example.com

我知道我知道 – 这不是你要求的,但我认为可以解决你的问题。

另外如果你的虚拟主机有完全相同的configuration,只需把你的网页放在/ somewhere / {nameOfDomain}然后在另一个虚拟主机上共享/某处。 那么您可以通过转到http:// myVhost / {nameOfDomain}来访问任何分页。 这可能会导致一些安全风险,如果在虚拟主机中你有一些访问规则[这可能不包括在'另一个虚拟主机'configuration]。

在任何标准打包的Apache将被设置为通过IP地址使用。 这基本上没有一个虚拟主机