
실제 운영용 nginx.conf 파일은 Github > Server 프로젝트(링크) 참고
설정 | 값 | 설명 |
limit_conn_zone | $binary_remote_addr zone=ddos_conn:10m; | 원격 ip 요청을 저장하는 ddos_conn이라는 메모리 영역을 10m 잡음 |
limit_req_zone | $binary_remote_addr zone=ddos_req:10m rate=10r/s; | 원격 ip 요청을 저장하는 ddos_req라는 메모리 영역을 10m 잡고 초당 요청을 10회로 제한함 |
upstream lb_sild_server | least_conn; server 127.0.0.1:13000; server 127.0.0.1:13001; | 13000, 13001 포트 중에 연결이 적은 쪽으로 로드밸런싱 |
upstream lb_sild_bo | least_conn; server 127.0.0.1:8000; server 127.0.0.1:8001; | 8000, 8001 포트 중에 연결이 적은 쪽으로 로드밸런싱 |
ssl_certificate, ssl_certificate_key | /etc/letsencrypt/live/도메인주소/fullchain.pem; /etc/letsencrypt/live/도메인주소/privkey.pem; | ssl 보안을 위한 인증서(letsencrypt 사용함) |
ssl_session_cache | shared:SSL:1m; | 1m 크기의 영역을 잡음(이론상 4000세션 유지) |
ssl_prefer_server_ciphers | on; | 암호화 옵션 on |
ssl_session_timeout | 5m; | 5분동안 세션 유지 |
ssl | on; | |
proxy_set_header | X-Forwarded-For $proxy_add_x_forwarded_for; | 프록시/로드밸런서로 들어오는 요청에 헤더들을 남김 |
proxy_connect_timeout | 3000; | 프록시 연결 타임아웃을 3000초 |
proxy_pass | 주소 | 해당 주소로 프록시태움 |
proxy_buffer_size | 128k | 응답 데이터를 읽는 첫 부분의 크기 |
proxy_buffers | 4 256k | 응답 데이터를 읽는 버퍼의 수와 크기 |
proxy_busy_buffers_size | 256k | 버퍼가 이 값을 초과하면 버퍼를 비우고, 클라이언트에게 알림 |
limit_conn | ddos_conn 10; | ddos_conn이라는 메모리 영역을 사용해서 동시 10개 연결까지만 허용 |
limit_req | zone=ddos_req burst=5 | ddos_req라는 메모리영역의 초당 요청에 추가로 최대 +5회까지 사용 |
valid_referers | none blocked server_names *.sild.app; | *.sild.app으로 들어오는 요청만 차단하지 않겠다. |
client_max_body_size | 100M | 클라이언트로부터 들어오는 바디 사이즈는 최대 100(이미지 업로드 제한) |
allow | ip | 해당 ip만 허용 |
deny | all | allow 제외하고 모두 차단 |