2016-03-08 93 views
4

我使用Django和我有ALLOWED_HOSTS設置,包括我EC2的私有IP按如下:Django的ALLOWED_HOSTS亞馬遜ELB

import requests 
EC2_PRIVATE_IP = None 
try: 
    EC2_PRIVATE_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4', timeout=0.01).text 
except requests.exceptions.RequestException: 
    pass 
if EC2_PRIVATE_IP and not DEBUG: 
    ALLOWED_HOSTS.append(EC2_PRIVATE_IP) 

問題是,上面並沒有考慮到ELB將請求轉發給我的EC2實例。有沒有辦法通過編程來完成這項工作?我可以請求公共IP地址還是設置檢查DNS?

我看到與ELB的公共IP地址這個問題。

+1

我認爲它應該是你的域名,而不是你的IP。我有EBS,我有這個'ALLOWED_HOSTS = ['.elasticbeanstalk.com','mydaomain.com']'。還要確保打開安全組中的所有端口,並在負載均衡器中添加偵聽器。 – WayBehind

+0

我有'[「.compute-1.amazonaws.com」,「.elb.amazonaws.com」,「.mydaomain.com」]',但我得到了電子郵件54.xxx.xxx.xxx全部來自亞馬遜。當我把IP地址放入瀏覽器時,它會進入我的主頁。很明顯,這與AWS有關。有沒有可能是Route53? – KVISH

+0

您可以分配彈性IP,但沒有必要這樣做。您的域名DNS應該指向負載平衡器DNS – WayBehind

回答

-1

發現這些請求來自使用AWS基礎結構的垃圾郵件發送者。很高興知道。

+4

你怎麼弄出來的? – 404pio

+0

但allowed_hosts用於爲您的應用程序提供服務,而不是用於請求它的主機... – igorsantos07