apache2 中的多个站点无法正常工作

apache2 中的多个站点无法正常工作

大家好,我需要帮助,我正在尝试在我的 docker 容器中使用 Ubuntu bom.com 和 bom2.com 创建两个本地站点,其中包含文章 <<https://www.liquidweb.com/kb/configure-apache-virtual-hosts-ubuntu-18-04/>>. 我完成了所有步骤,在“/var/www/bom.com/index.html”和“/var/www/bom2.com/index.html”中创建了两个文件夹,在“/etc/apache2/sites-available”中创建了conf文件bom.com.conf:

<VirtualHost *:80>
    DocumentRoot "/var/www/bom.com"
    ServerName bom.com
    ServerAlias www.bom.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

,bom2.com.conf:

<VirtualHost *:80>
    DocumentRoot "/var/www/bom2.com"
    ServerName bom2.com
    ServerAlias www.bom2.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

然后使用 a2dissite 000-default.conf 禁用默认主机然后使用命令启用两个站点:a2ensite bom.com.conf a2ensite bom2.com.conf 并在主机中设置它们

使用“service apache2 reload”重新加载 apache2 并尝试访问站点“http://bom.com”,但它转到互联网上的另一个站点,与“http://bm2.com”相同,我不明白问题是什么,我尝试解决这个问题一个星期(

答案1

根据您的描述和对问题的评论,您需要更新文件/etc/hostsbom.com指向bom2.com您的本地 Apache 安装。这通常被认为是开发目的的“不良做法”,因为使用.com不会为您提供快速的视觉参考来确认您是在本地工作还是在查看生产站点。话虽如此,以下是您可以如何实现目标:

  1. 打开终端(如果尚未打开)
  2. /etc/hosts使用您选择的文本编辑器进行 编辑:
    sudo vi /etc/hosts
    
  3. 添加指向您的 Docker 容器的记录。例如:
    172.17.0.2    bom.com
    172.17.0.2    bom2.com
    
  4. 保存文件
  5. 确保浏览器上的“开发人员工具”处于活动状态,并且“禁用缓存”处于活动状态。这将降低浏览器绕过本地名称解析来查询实时站点的可能性。

笔记:hosts除非您还在每台机器上更新文件,或者配置本地 DNS 服务器以相应地指向网络流量,否则本地网络上的其他机器将无法连接到 Docker 实例。

相关内容