일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 공부
- kotlin coroutine
- go
- PETERICA
- golang
- CloudWatch
- CKA
- APM
- kotlin
- Elasticsearch
- Spring
- 정보처리기사 실기 기출문제
- Linux
- AI
- mysql 튜닝
- Kubernetes
- 오블완
- 코틀린 코루틴의 정석
- CKA 기출문제
- Java
- kotlin querydsl
- 티스토리챌린지
- tucker의 go 언어 프로그래밍
- Pinpoint
- docker
- AWS EKS
- 정보처리기사실기 기출문제
- aws
- minikube
- 기록으로 실력을 쌓자
- Today
- Total
목록DevOps/nginx (13)
피터의 개발이야기
ㅁ 들어가며 지난 글, [Nginx] NGINX Rate Limiting & 동적 IP 차단 가이드에서 무분별한 요청에 대해 속도제한을 하였다. 만료된 ts를 계속 호출하는 문제를 해결하기 위해서는 기본 ts 파일을 넘기면 이후 무한 반복문제가 해결 되었다. 이번 글에서는 NGINX를 사용하는 웹 서버에서 특정 파일이 존재하지 않을 때 기본 파일을 전달하는 방법에 대해 정리하였다. ㅁ 문제 상황 NGINX에서 특정 URL로 요청이 들어왔을 때, 해당 파일이 존재하지 않으면 404 오류가 발생하였다. 이런 경우 [GO] Too many open files 에러 트러블슈팅 에 정리한 에러가 발생하기도 하였다. 이를 예방하고 안정적인 서비스를 위해 대책이 필요했다. ㅁ 기본 설정 구조NGINX의 try_fi..
ㅁ 들어가며ㅇ [GO] Too many open files 에러 트러블슈팅에서 이미 만료된 ts를 무한으로 요청하는 문제점을 발견하였다. ㅇ [Nginx] NGINX에서 정적 파일 캐시 설정하는 방법을 통해 백엔드 부하를 감소하기 위해 캐시를 적용한 상태이다. ㅇ 이번 글에서는 NGINX에서 특정 URL 패턴의 과도한 접근을 방어하기 위한 Rate Limiting 설정 방법을 정리해 보았다. ㅁ Rate Limiting 설정ㅇ NGINX의 Leaky Bucket 알고리즘 기반 요청 제한 기능을 활용해 서버 과부하를 방지한다.ㅇ NGINX의 limit_req 디렉티브를 사용하여 특정 클라이언트가 일정 시간 내에 보낼 수 있는 요청 수를 제한할 수 있다.ㅇ 이러한 속도 제한은 보안 목적으로 무차별 대입 공격..
ㅁ 들어가며 회사에서 보안검수를 수행하는데, 본 프로그램에 대한 사항보다 nginx에 대한 점검사항이 많았다. Nginx의 보안 강화를 위한 기본적인 설정에 대해서 잘 모르고 있었다. 보안은 웹 서버를 안전하게 운영하기 위해 필수적이다. 이 글에서는 Nginx 보안을 강화하기 위한 주요 설정 사항들을 정리해 보았다. ㅁ 보안 체크리스트ㅇ Nginx 버전 정보 숨기기 (server_tokens off;)ㅇ 보안 헤더 추가 (X-Frame-Options, XSS Protection 등)ㅇ 불필요한 HTTP 메서드 차단 (limit_except GET POST)ㅇ 디렉토리 리스팅 비활성화 (autoindex off;)ㅇ 파일 업로드 크기 제한 (client_max_body_size 10M;)ㅇ 민감한 파일 접..
ㅁ 관련 글ㅇ [Nginx] Nginx의 기본 이해와 주요 기능 ㅁ 들어가며 Nginx의 가상 호스팅 설정 방법에 대해 정리하였다. 가상 호스팅은 하나의 서버에서 여러 웹사이트를 운영할 수 있게 해준다. 이 글에서는 가상 호스팅의 개념부터 실제 설정 방법, 그리고 리버스 프록시 설정 방법을 정리하였다. ㅁ 가상 호스팅 개념 이해하기 가상 호스팅(Virtual Hosting)은 하나의 웹 서버에서 여러 개의 독립적인 웹사이트를 호스팅하는 방법이다. 각 웹사이트는 고유한 도메인 이름을 가지며, 서로 독립적으로 운영된다. ㅇ 주요 특징하나의 IP 주소로 여러 도메인 서비스 가능각 웹사이트마다 독립적인 설정 가능서버 리소스 효율적 사용ㅇ 가상 호스팅의 유형이름 기반 가상 호스팅: 도메인 이름으로 웹사이트 구..
ㅁ 들어가며PR을 진행하는 과정 중 의견으로 Nginx 설정의 모듈화에 대해서 의견이 있었다. 이를 해결하는 과정에서 Nginx 서버 설정을 체계적으로 관리하고 유지보수성을 높이기 위해 외부 설정 파일을 분리 방법을 알게 되었다. 복잡한 설정을 모듈화하여 가독성과 재사용성을 향상 시킨다. ㅁ 왜 외부 파일로 분리해야 할까?유지보수 편의성: 특정 설정만 별도로 수정 가능재사용성: 여러 서버 블록에서 동일한 설정 재활용가독성: 메인 설정 파일(nginx.conf)이 간결해짐협업 효율성: 팀원들이 설정 내용을 쉽게 파악 가능실전 적용 방법 ㅁ 기본 구조 이해http { include /etc/nginx/conf.d/*.conf; # 외부 설정 파일 포함 include /etc/nginx/snip..
ㅁ 들어가며 Nginx를 블루그린 배포, 인증서 설치 등 일부 기능에 대해서만 사용하였다. 최근 Nginx 보안 검수와 캐싱기능을 이용한 서버 부하 감소 방법을 진행하면서 Nginx에 대해서 좀 더 자세히 배울 수 있었다. 부분적으로 알고 있던 지식을 정리하고자 한다. 이 글에서는 Nginx의 기본 이해와 주요 기능을 정리하였다. ㅁ Nginx란 무엇인가? Nginx는 고성능의 오픈 소스 웹 서버 소프트웨어로, 정적 콘텐츠 제공 및 리버스 프록시, 로드 밸런싱 등 다양한 역할을 수행한다. 2004년 이고르 시쇼브(Igor Sysoev)에 의해 개발되었으며, 비동기 이벤트 기반 아키텍처를 통해 높은 처리량과 낮은 리소스 사용을 자랑한다.Apache와 달리 스레드 기반이 아닌 비동기 방식으로 동작하여 대규..
ㅁ 들어가며지난 글, [Nginx] NGINX 설정 파일의 구조와 사용법 - 캐시 설정 (정적 파일)에서 캐시설정 방법을 공부하였다. NGINX를 이용하여 HLS(HTTP Live Streaming) 스트리밍 캐싱을 설정하는 방법을 정리해 보았다. ㅁ HTTP 라이브 스트리밍이란? HLS(HTTP 라이브 스트리밍)는 Apple이 개발한 널리 사용되는 비디오 스트리밍 프로토콜이다. 비디오 혹은 오디오 파일을 작은 HTTP 파일 조각으로 나누어 전송하며, 주문형 스트리밍과 라이브 스트리밍 모두 지원한다. .m3u8 파일(재생 목록)과 .ts 파일(비디오 세그먼트)을 사용하는데, 클라이언트는 m3u8 파일을 먼저 다운로드하고, 이를 통해 ts 파일들을 순차적으로 요청하여 재생한다. HLS의 이러한 특성으로..
ㅁ 들어가며 [Nginx] NGINX 기설 설정 파일의 구조와 사용법 - 캐시 설정 (정적 파일)을 정리하면서 캐싱기능에 대해서 알게 되었다. 웹사이트 성능을 높이려면 정적 파일(이미지, CSS, JS 등)에 대한 캐시 설정이 필수적이다. NGINX에서는 다양한 방법으로 캐시를 설정할 수 있으며, 적절한 캐시 정책을 적용하면 페이지 로딩 속도를 향상시키고 서버 부하를 줄일 수 있다. 이번 글에서는 NGINX에서 정적 파일 캐시를 설정하는 방법을 정리하였다. 주로 NGINX Caching 설정 가이드을 인용하여 작성하였다.ㅇ 정적 파일 캐시?ㅇ NGINX Caching 설정방법ㅇ NGINX Caching 추가 설정ㅇ NGINX Caching 컨트롤 방법ㅇ NGINX 캐시 설정 적용 및 테스트 ㅁ 정적 ..
ㅁ 들어가며 보안점검을 받으면서 Nginx의 설정파일을 많이 공부하게 되었다. 설정 파일의 구조와 그 의미를 이해해야지 보안조치사항에 대응을 할 수 있다. 이번 글에서는 nginx의 config를 구성하는 방법을 정리하였다. ㅁ NGINX 설정 파일 위치ㅇ 기본적으로 /etc/nginx/nginx.conf에 위치하지만, OS 및 설치 방식에 따라 다를 수 있다.ㅇ 개별적인 서버 블록 설정은 /etc/nginx/conf.d/*.conf 또는 /etc/nginx/sites-available/에 있을 수 있다. ㅁ NGINX 설정 파일 기본 구조user nginx; # 실행 사용자 지정worker_processes auto; # 사용 가능한 CPU 코어 수에 맞게 설정events { worker..
ㅁ 들어가며 Https 구현을 위해 Nginx를 사용 중인데, 보안점검 시 eol로 인해 업그레이드 지시를 받았다. Nginx의 버전 관리 체계를 정리하였다. ㅁ 버전 관리 체계오픈소스 NGINX 프로젝트는 메인라인과 안정판의 두 가지 브랜치를 유지 관리한다. ㅇ mainline Mainline은 최신 기능과 버그 수정이 추가되는 활성 개발 브랜치이다. 버전 번호의 두 번째 부분에 홀수로 표시된다. ex) 1.21.0 ㅇ stable Stable은 심각도가 높은 버그에 대한 수정을 받지만 새로운 기능으로 업데이트되지 않는다. 버전 번호의 두 번째 부분에 짝수로 표시된다. ex) 1.22.0 Stable 브랜치는 수명 주기 동안 새로운 기능을 받지 않으며 일반적으로 중요한 버그 수정을 위해 하나 또는 두..