Apache2 站点仅可通过计算机的 IP 地址访问

Apache2 站点仅可通过计算机的 IP 地址访问

我有一个 Raspberry Pi 广播 wifi 网络,我在 /var/www/flask-dev 上有一个“Hello world”等效的 Python Flask 应用程序。当我在计算机上连接到网络并将浏览器指向 Pi 的 IP 地址 (192.168.0.10) 时,flask 应用程序会出现,但是,我试图让它显示在http://my.webtool/。关于如何让应用程序显示在http://my.webtool/我将不胜感激。我确信答案会非常简单,但我就是想不出来。

/etc/hosts

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       pi-zero-arcade
127.0.0.1       unseen.arcade
192.168.0.10    my.webtool

/etc/apache2/ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

/etc/apache2/站点可用

<virtualhost *:80>
    ServerName my.webtool

    WSGIDaemonProcess webtool user=www-data group=www-data threads=5 home=/var/www/flask-dev/
    WSGIScriptAlias / /var/www/flask-dev/webtool.wsgi

    <directory /var/www/flask-dev>
        WSGIProcessGroup webtool
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On

        Require all granted
    </directory>
</virtualhost>

/etc/apache2/sites-enabled 里面只有 my.webtool.conf。

/var/www/flask-dev/webtool.wsgi

import sys

sys.path.append('var/www/flask-dev')

from webtool import app as application

答案1

简而言之,您可以通过三种方式实现此目的:

  1. DNS
  2. 主机文件
  3. 移动DNS。

DNS

这里有两种方法 - 要么在您的 LAN 内使用本地 DNS,它可以对 进行权威答复my.webtool,要么在某些注册商处注册一个有效的 DNS 名称(例如mywebtool.com),并为其设置有效的 DNS。

在 LAN 内运行 DNS 服务器将使名称可供 LAN 中的任何人使用,但不能供 Internet 上的任何人使用。此类名称服务器可能已包含在您的路由器中;许多路由器都具有某种名称服务器,通常基于 dnsmasq 或未绑定。检查您的路由器以了解如何向其添加名称。

您还可以在 Ubuntu 上设置 DNS 服务器,但 LAN 上的每个设备都必须配置为使用该 DNS 服务器才能正常工作。

如果你在某个注册商处注册了一个名称,请创建一个指向你的 Pi 的 IP 的 A 记录。请注意,如果它是RFC1918-IP,它将无法在您的 LAN 之外工作。

Hosts 文件

在每个需要访问该服务的主机上,你必须添加

192.168.0.10    my.webtool

/etc/hosts大多数 *nix 操作系统或C:\Windows\System32\drivers\etc\hostsWindows 上。

移动DNS

mDNS 是多播 DNS,可在您的本地网络内工作。您不能使用my.webtool, 作为 mDNS 名称以 结束.local

为此,您必须在 Pi 上配置一个 mDNS 响应器,它将回复查询,并配置您的客户端以使用 mDNS 作为查找源。

在 Ubuntu 上,这由 处理avahi。我不会在这里详细介绍这一点,如果您需要帮助来启动和运行 mDNS,我建议您提出一个新问题。手册页是关于如何编辑配置文件的极好资源,并且相当详细。

相关内容