Apache 通过同一域名使网站可供内联网和互联网使用

Apache 通过同一域名使网站可供内联网和互联网使用

这可能是一个愚蠢的问题,但我似乎找不到解决方案。

以下场景: https://sub.doma.in:443托管在我家的 Apache 服务器上。从外部连接时工作正常。从我的计算机上的同一网络连接时也工作正常。但是,我的手机无法从同一网络连接(ERR_CONNECTION_TIMED_OUT)。所以一定出了问题。

我想要:建立与 sub.doma.in 的任何连接,通过互联网访问我的托管网站。我认为目前就是这样,但它并不适用于所有设备。

或者(最好):从内联网连接到 sub.doma.in,直接连接到内部 IP,而无需先路由到外部。

无论从哪里连接,每个人都应该最终到达同一个站点。

防火墙允许任何地方的 80 和 443,路由器只开放 443 端口。如果您需要任何配置文件或日志,请告诉我。任何帮助都非常感谢!:)

我当前网站的虚拟主机如下所示:

<VirtualHost *:80>

    ServerName sub.doma.in

    Alias /.well-known/acme-challenge/ /usr/share/webapps/acme

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

</VirtualHost>

<VirtualHost *:443>

    ServerName sub.doma.in

    SSLEngine on
    SSLCertificateFile xxx
    SSLCertificateKeyFile xxx
    Include xxx

        Protocols h2 http/1.1

        Header always set Strict-Transport-Security "max-age=63072000"

    CustomLog "xxx" common

    DocumentRoot xxx
    DirectoryIndex index.php index.html

    <Directory xxx>
        Require all granted
                AllowOverride All
                Options FollowSymLinks MultiViews
    </Directory>

    <IfModule mod_dav.c>
        Dav off
    </IfModule>

    <FilesMatch \.php$>
        SetHandler "proxy:unix:xxx|fcgi://localhost/"
    </FilesMatch>

</VirtualHost>

答案1

您是否在网络之外使用同一部手机访问该网站?错误是否只发生在这部手机上?以下是一些可能的原因:最简单的原因:可能是手机的缓存问题。最好的方法是谷歌搜索如何清除 DNS 缓存。

你肯定是通过https连接手机的吗?因为路由器没有开放80端口,所以http不行。

您的域名提供商是否正确配置了您的 DNS?最好使用 DNS 检查器进行测试(也可以直接在 Google 上搜索)

我能想到的另一个问题是,你的家庭网络中有一个广告拦截器,可能会阻止此页面。类似 Pi Hole 的东西……有些人现在已经有了,类似的东西可能会导致问题。我希望我能帮上忙。

答案2

事实证明,这与服务器当前连接的 WiFi 有关。如果它在 2.4GHz 网络上,则 2.4GHz 网络上的其他设备无法连接,但 LAN 和 5GHz 可以工作。反之亦然。所以我猜这是路由器的问题。我最终设置了 dnsmasq 并将网站的 IP 设置为本地内部地址。现在它正常工作了。

相关内容