如何访问本地局域网上的虚拟站点?

如何访问本地局域网上的虚拟站点?

网站已创建,在通过 Internet 访问时可以正常工作。我过去常常通过本地 IP 地址和网站名称访问特定网站。例如 192.168.1.2/name.com。name.com 只是域名吗?这停止工作了,我从来没有时间去解决它。顺便说一句,当我在浏览器中输入 IP 地址时,它会返回虚拟网站文件列表 sites-available 目录中的第一个网站名称。我尝试了名称的不同变体,但输入特定域名却没有任何效果。有什么建议吗?我还想知道防火墙是否会阻止任何本地地址访问网站。我认为不是,因为托管系统的 IP 地址会产生第一个网站(名称以“a”开头)。提前感谢任何想法

答案1

在我看来,这听起来像是可能有一个 Apache 配置文件被设置为将所有裸 IP 请求指向该/var/www目录。通过附加您要查找的站点的目录名称,您可以正常加载页面。为了做类似的事情,您需要一个“裸”Apache 配置文件。

以下是制作方法:

  1. 打开终端(如果尚未打开)
  2. 导航到 Apachesites-available目录:
    cd /etc/apache2/sites-available
    
  3. 创建一个内部使用的新文件。也许你可以这样命名000-local.conf
    sudo vi 000-local.conf
    
    笔记:您可以使用任何您习惯的文本编辑器。vi上面的例子更多的是一种习惯的力量,而不是直接的认可。
  4. 将以下内容粘贴到新文件中:
    <VirtualHost *:80>
            ServerAdmin [email protected]
            DocumentRoot /var/www
    
            ServerName 192.168.1.2
            ServerAlias 192.168.1.2 192.168.1.*
            DirectoryIndex index.php index.html
    
            ErrorLog ${APACHE_LOG_DIR}/local-error.log
            CustomLog ${APACHE_LOG_DIR}/local-access.log combined
    </VirtualHost>
    
    <Directory /var/www>
            Options FollowSymLinks
            AllowOverride All
    
            Order Allow,Deny
            Allow From All
    </Directory>
    
  5. 保存文件
  6. 启用配置文件:
    sudo a2ensite 000-local.conf
    
  7. 重新启动(或重新加载)Apache:
    sudo service apache2 restart
    
  8. 在您选择的浏览器中尝试一下

需要注意的事项:

  • 如果任何其他配置文件都192.168.1.2以 为它的值ServerName,则会发生冲突。您需要确保每个其他站点都以 FQDN(完全限定域名 - 类似于 website.com)为它的ServerName值。
  • 如果配置文件配置为监听*ServerAlias那么你需要确保它出现 000-local.conf按字母顺序排列在目录中。

只要目录中包含的站点不会强制从 重定向192.168.1.2/website.comwebsite.com,那么您应该能够在本地访问这些资源,而无需先在网络外执行 DNS 查找。

答案2

据我所知,192.168.1.2/name.comIP 被转换为系统路径,例如,此 IP 的主机将重定向到 /home/www/,并将/name.com格式化为 /home/www/name.com/。因此,如果您的网站未显示,则可能是您的文件夹 name.com 没有任何与 Web 服务器(html、htm、php 等)关联的文件。如果您想将 IP 更改为域名,则必须使用知道如何将其转换为 IP 的 DNS 服务器,或者使用以下模式编辑 /etc/hosts:IP 域名(例如 2.2.2.2 this.is.site),此外,如果您尚未这样做,您还应该在主机配置文件中为其指定哪个 IP。

相关内容