ส่วนหัว http_host ไม่ถูกต้อง


109

ฉันกำลังพยายามพัฒนาเว็บไซต์โดยใช้ Django framework และเปิดตัวโดยใช้ DigitalOcean.com และปรับใช้ไฟล์ที่จำเป็นใน django-project

ฉันต้องรวมไฟล์คงที่ไว้ใน Django-project และหลังจากรวบรวมไฟล์แบบคงที่ฉันพยายามรีเฟรช ip ของฉัน

ฉันกำลังรวมบทช่วยสอนที่ฉันใช้ในการสร้างเว็บไซต์ https://www.pythonprogramming.net/django-web-server-publish-tutorial/

ฉันได้รับข้อผิดพลาดต่อไปนี้:

DisallowedHost ที่ / ไม่ถูกต้องส่วนหัว HTTP_HOST: '198.211.99.20' คุณอาจต้องเพิ่ม u'198.211.99.20 'ใน ALLOWED_HOSTS

ใครสามารถช่วยฉันแก้ไขปัญหานี้? นี่เป็นเว็บไซต์แรกของฉันที่ใช้ Django framework


นั่นอาจเป็นที่อยู่ IP แบบลอยของคุณบน DigitalOcean
Poopy McFartnoise

คำตอบ:


187

บันทึกข้อผิดพลาดนั้นตรงไปตรงมา ตามที่แนะนำคุณต้องเพิ่ม198.211.99.20 ในALLOWED_HOSTSการตั้งค่าของคุณ

ในไฟล์ settings.py โครงการของคุณตั้งค่าALLOWED_HOSTSดังนี้:

ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

สำหรับการอ่านเพิ่มเติมอ่าน ได้จากที่นี่


ขณะนี้ได้รับ URL คำขอข้อผิดพลาดต่อไปนี้: 198.211.99.20 Exception Type: TemplateDoesNotExist Exception Value: personal / home.html Exception Location: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py ใน get_template บรรทัดที่ 25 ฉันมีเทมเพลตอยู่ในโฟลเดอร์ต่อไปนี้ / home / django / django_project / personal / templates / personal
Kathiravan Natarajan

@Kathir มีหลายตัวอย่างของข้อผิดพลาดนั้นเพียงแค่ google มันและหากปัญหายังคงดำเนินต่อไปโปรดถามเป็นคำถามแยกต่างหากความคิดเห็นจะไม่สามารถอธิบายได้มากนัก
Prakhar Trivedi

วิธีนี้ได้ผลแน่นอน แต่เป็นการปฏิบัติที่ไม่ดีเพราะคุณควรใช้ไฟล์. env เสมอ
Abhishek Jebaraj

@AbhishekJebaraj คุณช่วยอธิบายเพิ่มเติมหรือแชร์ลิงค์พร้อมคำอธิบายเพิ่มเติมได้ไหม
Jesus Almaral - Hackaprende

1
@JesusAlmaral ไฟล์. env เป็นไฟล์ในเครื่องที่มีรหัสผ่านและข้อมูลที่ละเอียดอ่อนอื่น ๆ หากคุณใส่ข้อมูลที่ละเอียดอ่อนทั้งหมดนี้ไว้ในโค้ดของคุณข้อมูลนั้นอาจถูกบุกรุกได้ ดังนั้นเราจึงใช้ไฟล์. env ในเครื่องนี้และทุกคนจะจัดเก็บรหัสผ่านของตัวเอง ฯลฯ ไว้ในเครื่อง
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
ดังที่ pydanny กล่าวว่า "... อย่าปล่อยไว้อย่างนั้นเมื่อคุณทราบสาเหตุนี้สาเหตุก็คือทำให้ Django อาจเสี่ยงต่อการโจมตีส่วนหัวของ HTTP_HOST และสคริปต์อัตโนมัติจะกัดเซาะอินเทอร์เน็ตเพื่อตรวจสอบว่าไซต์มีช่องโหว่นี้หรือไม่" github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
ฮ่า ๆ นั่นคือเพื่อการพัฒนา env. ในการผลิตต้องตั้งค่า DEBUG = False เท่านั้น
George Poliovei

4
คุณไม่ต้องการใช้ "*" สำหรับการผลิต สิ่งนี้ข้ามเหตุผลและความปลอดภัยของโฮสต์ที่อนุญาตโดยสิ้นเชิง
Andy Poquette
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.