Django
-
DJANGO + NGINX DDOS 방지 동일 IP중복 요청 제한Django 2023. 11. 14. 16:39
limit_req 모듈을 사용하여 동일 IP중복요청을 제한하여 DDOS공격을 방지하는법 limit_req_zone : 단위 시간당 요청의 수를 제한하는데 사용 limit_conn_zone : 동시 연결 수를 제한하는데 사용 # 모두 사용하여 요청 속도 제한, 동시 연결 수를 제아하여 서버를 보호하는게 좋긴하다고 합니다. # 서로 보완적으로 작동함 # nginx.conf http { limit_req_zone $binary_remote_addr zone=ddos:10m rate=5r/s; server { location / { limit_req zone=ddos burst=5; } $binary_remote_addr : 변수에 의해 설정된 클라이언트 IP 주소입니다. zone=ddos:10m : 존의 이름..
-
Django Redis cacheDjango 2023. 1. 3. 11:43
django-redis 라이브러리를 사용해용https://github.com/jazzband/django-redis GitHub - jazzband/django-redis: Full featured redis cache backend for Django.Full featured redis cache backend for Django. Contribute to jazzband/django-redis development by creating an account on GitHub.github.com간단히 도까로 로컬 레디스를 띄우고 해볼게용 따라해용docker pull redis # 레디스 이미지를 풀 받아용docker images # 잘 받아졌는지 확인해용docker network create redis-..
-
Django timezoneDjango 2022. 10. 14. 15:51
django는 기본적으로 utc시간을 사용한다. 한국 시간을 사용하기 위해 세팅에 아래와 같이 설정을 한다. TIME_ZONE = "Asia/Seoul" USE_TZ = True 그러나 위의 설정을 하고 datetime 연산을하면 시간이 맞지않다. DB를 확인해보면 utc 시간으로 설정되어 있다. DB에도 설정한 timezone으로 저장하려면 어떻게 할까? TIME_ZONE = "Asia/Seoul" USE_TZ = False 위의 예시대로 사용하면 DB에도 설정한 timezone으로 저장이 가능하다. 둘의 차이가 무엇일까? USE_TZ = True # 보여지는 부분 템플릿과 폼에만 적용된다. USE_TZ = False # 모든 경우 즉 datetime 객체애도 적용되어 DB에 timezone설정으로 저..
-
Django UniqueConstraintDjango 2022. 10. 7. 16:06
번호표라는 모델이 있다고 가정해보자 순서를 정확히 정하기 위해 번호표에 번호는 유니크해야 할 것이다. class Numberticket(models.Model): user = models.ForeignKey() number = models.PositiveIntegerField(unique=True) 번호표의 번호를 유니크하게 하려면 모델에 필드에 unique=True 옵션을 주면 번호는 유니크하게 된다. 또 다른 생각을 해보자 매일 새로운 번호표를 만들어주기위해 날짜가 있고 각 날짜에 번호표가 유니크하게 필요하다고 가정해보자 그렇다면 날짜, 번호를 묶어서 유니크한 필드로 구성해야 할 것이다. django 에서는 unique_together, UniqueConstraint로 2개 이상의 필드를 묶어 유니크..