ELB , beanstalk (*.elasticbeanstalk.com EC2 *.amazonaws.com), ALLOWED_HOSTS '.amazonaws.com' '.elasticbeanstalk.com'.
ipv4- , . , , , , , .
Apache Django. , , . beanstalk Apache, .ebextensions, . .ebextensions .config.
files:
"/etc/httpd/conf.d/eb_healthcheck.conf":
mode: "000644"
owner: root
group: root
content: |
<If "req('User-Agent') == 'ELB-HealthChecker/1.0' && %{REQUEST_URI} == '/status/'">
RequestHeader set Host "example.com"
</If>
/status/ URL example.com . Apache, , URL .
Apache, . Django CommonMiddleware, HttpRequest get_host(), . -
from django.middleware.common import CommonMiddleware
class CommonOverrideMiddleware(CommonMiddleware):
def process_request(self, request):
if not('HTTP_USER_AGENT' in request.META and request.META['HTTP_USER_AGENT'] == 'ELB-HealthChecker/1.0' and request.get_full_path() == '/status/'):
return super().process_request(request)
. django.middleware.common.CommonMiddleware path.CommonOverrideMiddleware settings.py.
Apache, - Django .