본문 바로가기

운영체제&네트워크/Nginx10

Nginx를 사용한 웹 서버 보안 강화와 SSL/TLS 설정 Nginx 에서 SSL/TLS 설정을 구성하여 HTTPS를 통한 보안 연결을 설정하고, 보안 관련 헤더를 추가함으로써 웹 애플리케이션의 보안을 강화할 수 있다. SSL 이란? >> SSL(Secure Socket Layer)은 데이터 통신을 암호화하고 보안을 강화하는 프로토콜이다. SSL은 웹 브라우저와 웹 서버 간의 통신에서 가장 널리 사용되며, HTTPS(보안 HTTP) 프로토콜을 통해 웹 사이트의 보안 연결을 제공하는데 주로 활용된다. 그럼, 보안 설정을 구현하는 방법에 대해 알아보자. HTTPS 보안 연결 설정 >> SSL 인증서 및 개인 키 생성: SSL 인증서와 개인 키를 생성하려면 OpenSSL 과 같은 툴을 사용할 수 있다. 다음은 Linux 기반에서의 명령어다. openssl genpke.. 2024. 3. 29.
Nginx 건강 검사(Health Checks) Nginx 에서 능동적인 건강 검사(Active Health Checks)는 Nginx Plus에서 지원하는 기능으로, 백엔드 서버의 상태를 주기적으로 확인하고, 실패한 서버를 자동으로 트래픽에서 제외할 수 있다. 이를 통해 서버의 신뢰성을 높이고 안정적인 서비스를 제공할 수 있다. 구성 방법 >> http 블록 내에서 upstream 블록을 정의한다. http { upstream myapp { server backend1.example.com; server backend2.example.com; # 추가 백엔드 서버 정의 } } location 블록 내에서 proxy_next_upstream 지시어를 설정한다. (실패한 백엔드 서버로의 요청을 다음 백엔드 서버로 전달하도록 지시한다.) location .. 2024. 3. 29.
Nginx 로드 밸런싱 기법: 라운드 로빈, 가중치 기반, IP 해시 Nginx는 효과적인 로드 밸런싱 기능을 제공하여, 여러 백엔드 서버 간의 요청을 분산시켜 애플리케이션의 가용성과 확장성을 향상시킨다. 로드 밸런싱 설정을 통해 서버의 부하를 균등하게 분산시키고, 서버가 다운되었을 경우 자동으로 트래픽을 다른 서버로 리디렉션하여 서비스의 지속성을 유지한다. 로드 밸런싱 기법에 대해 알아보자. 라운드 로빈(Round Robin) >> 가장 기본적인 로드 밸런싱 방식으로, 각 요청을 순서대로 다음 서버로 전달한다. 모든 서버가 동일한 가중치를 가지며, 순차적으로 요청을 처리한다. (모든 서버가 동등한 부하 분산을 원할 때 사용된다) http { upstream myapp { server backend1.example.com; server backend2.example.com.. 2024. 3. 29.
Nginx 리버스 프록시 설정 및 사용법 Nginx는 효율적인 정적 파일 서빙과 동적 콘텐츠를 위한 리버스 프록시 기능을 제공한다. 이 두가지 기능을 통해 웹 애플리케이션의 성능과 확장성을 확장시킬 수 있다. 정적 파일 >> 정적 콘텐츠(예: HTML, CSS, JS 파일, 이미지 등)는 사전에 생성되어 변경되지 않는 파일이다. Nginx는 이러한 정적 파일을 빠르게 제공하기 위한 최적화된 방법을 제공한다. Nginx에서 정적 파일을 제공하려면 location 블록 내에서 root 또는 alias 지시어를 사용하여 파일이 위치한 디렉토리를 지정한다. server { listen 80; server_name example.com; location / { root /var/www/example.com/html; # 정적 파일의 루트 디렉토리 ind.. 2024. 3. 29.