问题:我已经设置了我的第一个 Apache 2 Web 服务器来托管我的个人网站和 Nextcloud。它在 Raspberry Pi 上运行,通过各种指南和视频,我设法使网站和云可以从外部我自己的网络。但是,当我尝试从与 Web 服务器位于同一 IP 上的任何设备访问它时,它不起作用。当然,使用我的本地 IP 访问网站和云是可行的(尽管网站上的图片不起作用,因为它们链接到我的域)。
研究:我没能从以前的类似帖子中得到任何帮助,其中大多数也没有具体的答案。据我所知,这里可能有以下几个问题:配置文件(主机、端口、apache2 等)、我的自定义 ClouDNS 设置、我的 DHCP/静态 IP 设置或路由器中的某些设置。
我的设置:
- Pi 有静态本地 IP
- ClouDNS 提供我的域名和我家庭网络的公共 IP 之间的链接
- 我完全遵循了这一点(指导链接) 教程,但安装 RAID 除外,因为这与安装无关
- 我最初安装了 No-IP 并使用了它,但现在不再使用了。但它仍然安装在 Pi 上,不确定这是否重要。
- 尽管通过 Instructable 手动编辑了 SSL 加密,但我确实编辑并运行了 DietPi-Letsencrypt 服务。同样,不确定这是否重要。
- 端口 443 和 80 在路由器中正确转发,并且我正在为我的网络运行 DHCP,但 Pi 除外,它的 IP 已锁定。我还在 Dietpi-Config 中设置了静态 IP,包括公共 DNS。那里有什么问题吗?
- 让我感到困惑的是 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 虚拟主机还应该具有
ServerName
和ServerAlias
:<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>
不要使用
CNAME
for ,只需为子域名www.example.com
创建一个普通记录,并赋予它与 相同的 IP 。A
example.com