无法从家庭网络访问 Apache 2 Web 服务器

无法从家庭网络访问 Apache 2 Web 服务器

问题:我已经设置了我的第一个 Apache 2 Web 服务器来托管我的个人网站和 Nextcloud。它在 Raspberry Pi 上运行,通过各种指南和视频,我设法使网站和云可以从外部我自己的网络。但是,当我尝试从与 Web 服务器位于同一 IP 上的任何设备访问它时,它不起作用。当然,使用我的本地 IP 访问网站和云是可行的(尽管网站上的图片不起作用,因为它们链接到我的域)。

研究:我没能从以前的类似帖子中得到任何帮助,其中大多数也没有具体的答案。据我所知,这里可能有以下几个问题:配置文件(主机、端口、apache2 等)、我的自定义 ClouDNS 设置、我的 DHCP/静态 IP 设置或路由器中的某些设置。

我的设置:

  1. Pi 有静态本地 IP
  2. ClouDNS 提供我的域名和我家庭网络的公共 IP 之间的链接
  3. 我完全遵循了这一点(指导链接) 教程,但安装 RAID 除外,因为这与安装无关
  4. 我最初安装了 No-IP 并使用了它,但现在不再使用了。但它仍然安装在 Pi 上,不确定这是否重要。
  5. 尽管通过 Instructable 手动编辑了 SSL 加密,但我确实编辑并运行了 DietPi-Letsencrypt 服务。同样,不确定这是否重要。
  6. 端口 443 和 80 在路由器中正确转发,并且我正在为我的网络运行 DHCP,但 Pi 除外,它的 IP 已锁定。我还在 Dietpi-Config 中设置了静态 IP,包括公共 DNS。那里有什么问题吗?
  7. 让我感到困惑的是 Instructable 中的部分,我在其中注释掉了所有 /etc/apache2/sites-available/000-default.conf 并添加了强制 https。但是,在此过程之后的某个时候,文件添加或取消注释了 ServerName MYDOMAIN.COM,我再次将其注释掉,但无论哪种方式都没有什么区别。

我对 Apache、Pi 和所有东西都很陌生,但任何帮助都会非常感激。我想强调的是,整个问题都出于好奇心和更优雅的解决方案,因为从技术上讲,我可以从自己的网络内访问所有内容,只是不使用我分配给服务器的域。

非常感谢您的建议!

答案1

我不确定这是否能解决您的问题,但有几点需要考虑:

  • 也许/etc/apache2/sites-available/000-default.conf可以尝试这个:

      <VirtualHost *:80>
    
          # As a general rule, the ServerName should
          # not be commented out in a virtual host.
    
          ServerName example.com
    
          # To have this host respond to e.g. www.example.com 
          # (not just example.com), a ServerAlias directive
          # needs to be included as well.
    
          ServerAlias www.example.com
    
          ServerAdmin [email protected]
    
          # For simple redirects, using Redirect is 
          # preferable to mod_rewrite, per the official
          # Apache 2.4 documentation.
    
          Redirect permanent / https://example.com/
    
      </VirtualHost>
    
  • 您的 SSL 虚拟主机还应该具有ServerNameServerAlias

      <VirtualHost *:443>
    
          # As a general rule, the ServerName should
          # not be commented out in a virtual host.
    
          ServerName example.com
    
          # To have this host respond to e.g. www.example.com 
          # (not just example.com), a ServerAlias directive
          # needs to be included as well.
    
          ServerAlias www.example.com
    
          ServerAdmin [email protected]
    
          # SSL and Nextcould configuration stuff goes here.
    
      </VirtualHost>
    
  • 不要使用CNAMEfor ,只需为子域名www.example.com创建一个普通记录,并赋予它与 相同的 IP 。Aexample.com

相关内容