Django 1.5 도 메 인 이름 이 아 닌 접근 으로 인 한 500 오류 해결

984 단어 nginxdjango
Django 1.5 가 새로운 기능 을 제공 하기 시 작 했 습 니 다. 필요 한 기능 입 니 다. ALLOWED 설정 을 통 해HOSTS, 방문 하 는 도 메 인 이름 을 제한 합 니 다.연 결 된 도 메 인 이름 을 통 해서 만 사이트 에 접근 할 수 있 으 며, IP 주소 나 이 사이트 에 연결 되 지 않 은 방식 으로 는 거부 당 합 니 다 (기본적으로 500 오류 가 발생 합 니 다).
이것 은 매우 좋 은 특성 이지 만 그 에 게 도 부작용 이 있다. 그것 은 500 개의 오류 가 발생 할 수 있다 는 것 이다. 호의 가 없 는 사람 이 IP 스 캔 등 방식 으로 서버 를 괴 롭 히 면 귀 찮 게 하지 못 하고 어느 정도 시스템 의 반응 능력 을 늦 출 수 있다.500 오류 가 발생 하 는 것 도 계산 자원 을 소모 하 는 것 이 고 비 싼 django 자원 입 니 다!
해결 방법 은 전단 서버 에서 도 메 인 이름 이 아 닌 접근 을 직접 막 아 django 에 전달 되 지 않도록 하 는 것 이다.가령nginx 에서 다음 과 같은 방식 으로 해결 할 수 있 습 니 다.
server {
    listen 80 default;
    location / {
        # or show another site
        return 403 "Forbidden";
    }
}
server {
    listen 80;
    server_name $your_domain;
    location / {
        uwsgi_pass unix:$your_django_sock;
        include uwsgi_params;
    }
}

참고:
http://stackoverflow.com/questions/17149435/avoiding-djangos-500-error-for-not-allowed-host-with-nginx

좋은 웹페이지 즐겨찾기