-
-
Save dryan/8271687 to your computer and use it in GitHub Desktop.
# Hosts/domain names that are valid for this site; required if DEBUG is False | |
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts | |
ALLOWED_HOSTS = [ | |
'yourdomain.tld', | |
'.compute-1.amazonaws.com', # allows viewing of instances directly | |
] | |
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: | |
ALLOWED_HOSTS.append(EC2_PRIVATE_IP) |
Still works!
put your ec2 instance's private ip in allowed hosts if using single instance
you do not need line 5 '.compute-1.amazonaws.com'. Works fine also without it.
Also the public-hostheader (@JoarLeth) is not required.
Right on, good looks bud 👍
This is a great solution, congrats
how about v6 addresses?
Another option is to implement a middleware that returns a health check before Django's SecurityMiddleware
(that checks the request against ALLOWED_HOSTS
): https://gist.github.com/mgax/cf771b1991e68ca454693d5f3597ff04
Hi, I am stuck with this we have an ELB which uses the Round-Robin technique and we have 3-10 servers, and I couldn't get any single of them working. Which IP shall I put into the below line 11
EC2_PRIVATE_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4', timeout = 0.01).text
Please someone help me here
This Works for me
import requests
ALLOWED_HOSTS = [
'yourdomain.tld',
'.compute-1.amazonaws.com', # allows viewing of instances directly
]
EC2_PRIVATE_IP = None
try:
token = requests.put("http://169.254.169.254/latest/api/token",
headers={"X-aws-ec2-metadata-token-ttl-seconds": "21600"}).text
EC2_PRIVATE_IP = requests.get("http://169.254.169.254/latest/meta-data/local-ipv4",
headers={"X-aws-ec2-metadata-token": token}, timeout=0.01).text
except requests.exceptions.RequestException:
pass
if EC2_PRIVATE_IP:
ALLOWED_HOSTS.append(EC2_PRIVATE_IP)
Great,
I also have somewhat similar try/except block.
Works great! thanks!