Amazon-Ec2
aws ec2 和 Django ALLOWED_HOSTS
我已經使用 Django 在 AWS EC2 上使用 Elastic Beanstalk 建立了我的網站。我已將 ALLOWED_HOSTS 設置為
$$ ‘www.mydomain.fr’, ‘.mydomain.fr’ $$,如 Django 網站上所建議的那樣。 但是我收到了很多警報,例如:
無效的 HTTP_HOST 標頭:“ip-xxx-xx-xx-xxx.eu-west-1.compute.internal”。您可能需要將 u’ip-xxx-xx-xx-xxx.eu-west-1.compute.internal’ 添加到 ALLOWED_HOSTS。
ip-xxx-xx-xx-xxx.eu-west-1.compute.internal 在哪裡是我的私有 DNS?
將其添加到 ALLOWED_HOSTS 是否安全,或者會導致安全漏洞?
非常感謝
是的,沒關係。但是,如果您終止實例,您將失去該地址。所以:你應該努力尋找一種更靈活/動態的方式來處理 ALLOWED_HOSTS。您可能想嘗試將實例的地址設置為環境變數。
或者,一個不太動態的解決方案:您可能還想檢查是否使用 AWS 彈性 IP。雖然,這在虛擬私有云中的私有子網中可能是不可能的——儘管在您的設置中聽起來並非如此。
這是另一種探索的選擇……儘管您必須對這是否安全進行一些研究。在此 AWS 頁面上了解如何從 AWS IP 獲取實例的元數據…
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html
然後像這樣在您的 Django 設置文件中利用上面建議的 AWS 資源……
#DJANGO 製作設置 導入請求 從 .base 導入 * ########## ALLOWED_HOSTS 從 requests.exceptions 導入 ConnectionError url = "http://169.254.169.254/latest/meta-data/public-ipv4" 嘗試: r = requests.get(url) instance_ip = r.text ALLOWED_HOSTS += [instance_ip] 除了連接錯誤: error_msg = "您只能在 AWS EC2 實例上執行生產設置" 引發不當配置(error_msg) ########## END ALLOWED_HOSTS