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,則頁面僅從那裡載入。另外我應該補充一點,當我從其他位置訪問時,它並不完全“不加載”,它只是顯示一個標題為“Index of /”的 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

相關內容