Apache 服务器仅响应外部 IP

Apache 服务器仅响应外部 IP

我正在学习 Django,想在我拥有的一台 Ubuntu 计算机上测试托管它。我决定使用 Apache 和 mod_wsgi 来提供服务。我让大多数事情都正常工作,但有一件事让我感到困惑。我只能从我的外部 IP 地址访问该网站,而不能从 127.0.0.1 或我的 192.168.xx 地址访问。

/etc/apache2/sites-available 中的 django.conf 文件是

<VirtualHost *:80>

WSGIScriptAlias / /home/username/project

ServerName my_external_ip

Alias /media/ /home/username/project/media
Alias /static/ /home/username/project/static

<Directory /home/username/project>
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

如果我将 ServerName 设置为 127.0.0.1,那么页面只会从那里加载。另外,我应该补充一点,当我从其他位置访问时,它并不完全“不加载”,它只是显示一个标题为“/ 的索引”的 Apache 页面,没有任何内容。

在所有情况下,是什么阻止了 Apache 提供页面?我该如何让它以 127.0.0.1 等方式提供页面?有没有更好的方式可以托管它?

答案1

您的答案是- 当 HTTP 客户端发送的标头与端口上的其他块之一不匹配apache2ctl -S时,安装中的“默认”站点优先。HostServerNameServerAlias<VirtualHost>

如果您希望 Django 网站处理对服务器的所有请求,请禁用默认设置:

a2dissite default

...然后重新启动 Apache。

否则,如果您想要更细致地让 Django 接管,您可以ServerAlias向其配置中添加<VirtualHost>

ServerAlias internal.ip external.ip external.dns.name

相关内容