Django Bad Request(400) Error in Deployment with Apache/NginX
apache, django, nginx, python, python-2.7
Solution
To discover your problem, first in `settings.py` set `ALLOWED_HOSTS` temporarily to:
ALLOWED_HOSTS = '*'
And then in somewhere in your `view`, try to print out and see output of this command:
print(request.META['HTTP_HOST']) # or print(request.get_host())
Then according to output, set that (just domain of it as an list) to your `ALLOWED_HOSTS`.
Notes:
Use `ALLOWED_HOSTS = '*'` may have security issue for you, read about that here.
After every change you need to restart your service(apache/nginx).
Problem
I'm trying to lunch my app on VPS in `Debug=False` mode. `Debug=True` works fine but when I change it to false I got this error. I'm using Apache for rendering python pages and Nginx to serve my static files. I tried using this [answer]: Debugging Apache/Django/WSGI Bad Request (400) Error but it's not working at least for me. And this is my wsgi config: ``` #wsgi.py import os import sys os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() path = '/var/www/example' if path not in sys.path: sys.path.append(path) ``` And also I've added below code to my settings file: ``` ALLOWED_HOSTS = [ '.example.com', # Allow domain and subdomains '.example.com.', # Also allow FQDN and subdomains ] ```