Why is Django throwing error “DisallowedHost at /”?

后端 未结 5 1347
难免孤独
难免孤独 2020-12-13 23:19

I am setting up my own Django server using this Digital Ocean tutorial. I created the Django framework following each step, and ran the server using this command:

         


        
相关标签:
5条回答
  • 2020-12-13 23:41

    For development, you can use the * wildcard to allow all hosts in settings.py:

    ALLOWED_HOSTS = ['*']

    Important

    Modify this configuration when you deploy your app in production environment.

    0 讨论(0)
  • 2020-12-13 23:57

    For Run Django Project on localhost with free hosting by "ngrok"

    run ngrok http 8000

    (before run this in your project make sure your project are required to run on localhost like- python manage.py runserver)

    http://563ae936.ngrok.io -> http://localhost:8000

    Edit Setting.py

    ALLOWED_HOSTS = ['563ae936.ngrok.io', 'localhost', '127.0.0.1', 'testserver']

    Here "563ae936.ngrok.io" Replace your Host name with removing http:// or https://

    0 讨论(0)
  • 2020-12-14 00:01

    Include both ('www.name.com', 'ip.ip.ip.ip') Set Debug = True, then retry the IP & URL Address.

    Go to the Traceback section, find the message [ raise DisallowedHost(msg) ] click -> ▼ Local vars

    It will show the incoming domain name and the settings for allowed hosts:

    *Variable       Value
    *allowed_hosts  ['ip.ip.ip.ip', 'name.com']
    *domain          'something.com'
    *
    

    Copy the incoming value into your settings.py. If the you see old settings restart the server\nginx

    0 讨论(0)
  • 2020-12-14 00:02

    In your settings.py, there is a list called ALLOWED_HOSTS. You need to add the IP address you see in the error to that list:

    ALLOWED_HOSTS = ['XX.XX.XX.XX']

    Note: only add the IP address, and not the port (e.g., 127.0.0.1 and not 127.0.0.1:8000)

    Explanation:

    Django checks the Host header of the HTTP request for a url/ip address that is within the allowed hosts.

    From the django website:

    This is a security measure to prevent HTTP Host header attacks, which are possible even under many seemingly-safe web server configurations.

    https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts

    0 讨论(0)
  • 2020-12-14 00:03

    Go to setting.py

    ALLOWED_HOSTS = ['*']

    0 讨论(0)
提交回复
热议问题