Nginx 웹 서버 설정
ServBay는 내장된 Nginx 웹 서버 패키지를 쉽고 편리하게 관리하고 설정할 수 있는 기능을 제공합니다. ServBay의 직관적인 그래픽 사용자 인터페이스를 통해 다양한 로컬 개발 프로젝트에 맞게 Nginx의 핵심 설정을 손쉽게 조정할 수 있습니다.
Nginx 설정 접근 방법
- ServBay 애플리케이션을 실행하세요.
- 왼쪽 내비게이션 바에서
웹 서버
를 클릭합니다. Nginx
탭을 선택하세요.
아래와 같이 Nginx 설정 화면이 표시됩니다:
주요 설정 항목 안내
Nginx 설정 화면에서 각 항목이 의미하는 바를 상세히 설명합니다.
기본 네트워크 설정
- HTTP 포트: Nginx가 HTTP 프로토콜을 수신하는 포트로, 기본값은
80
입니다. - HTTPS 포트: Nginx가 HTTPS 프로토콜을 수신하는 포트로, 기본값은
443
입니다. - Worker Connections: 각 Nginx 워커 프로세스(worker process)에서 동시에 처리할 수 있는 최대 연결 수입니다. 이 값은 Nginx의 동시 처리 능력에 영향을 미치며,
10240
은 고부하 상황에 적합한 비교적 높은 값입니다.
성능 및 제한
- Client Max Body Size: 클라이언트 요청에서 허용되는 최대 본문 크기입니다. 예를 들어, 파일 업로드 크기를 제한하는 역할을 합니다.
2048m
은 최대 2GB 요청 본문을 허용한다는 의미입니다. - KeepAlive Timeout: 클라이언트와 서버 간에 Keep-Alive 연결이 유지되는 최대 시간(초)입니다.
65
초로 설정하면 해당 시간 안에 추가 요청이 없으면 서버가 연결을 종료합니다. - TCP Nodelay:
TCP_NODELAY
옵션의 활성화 여부입니다. 활성화(On)하면 작은 데이터 패킷의 전송 지연을 줄일 수 있으므로, 네트워크 지연이 크거나 실시간 상호작용이 필요한 애플리케이션에서 권장됩니다.
HTTP 프로토콜 버전
- HTTP/2: HTTP/2 프로토콜 지원을 활성화 또는 비활성화합니다. HTTP/2는 멀티플렉싱, 헤더 압축 등을 통해 성능을 향상시킵니다. 활성화를 권장합니다.
- HTTP/3: HTTP/3 (QUIC) 프로토콜 지원을 활성화 또는 비활성화합니다. HTTP/3는 UDP 기반 차세대 인터넷 프로토콜로, 성능 및 안정성이 향상됩니다. ServBay 버전에서 지원한다면 필요에 따라 활성화하세요.
FastCGI 설정 (PHP 등 백엔드 처리용)
- FastCGI Connect Timeout: Nginx가 FastCGI 서버(예: PHP-FPM)와의 연결을 기다리는 최대 시간(초)입니다.
- FastCGI Send Timeout: Nginx가 FastCGI 서버로 요청을 보낼 때의 최대 시간(초)입니다.
- FastCGI Read Timeout: Nginx가 FastCGI 서버로부터 응답을 기다리는 최대 시간(초)입니다.
이러한 타임아웃 설정은 처리 시간이 긴 PHP 스크립트에 중요하며, 실제 애플리케이션 환경에 맞게 조정하여 요청이 중단되는 것을 방지해야 합니다.
Gzip 압축
- Gzip: Gzip 압축을 활성화 또는 비활성화합니다. 활성화 시 Nginx는 클라이언트로 응답을 전송하기 전에 데이터 압축을 실시하여 전송 데이터 용량을 줄이고 페이지 로드 속도를 높입니다. 사용을 강력히 추천합니다.
- Gzip Comp Level: Gzip 압축 레벨로,
1
(가장 빠르지만 압축률 낮음)부터9
(가장 느리지만 압축률 높음)까지 설정할 수 있습니다.1
또는2
값이 속도와 압축 효율의 균형을 유지하는 데 좋습니다. - Gzip Types: Gzip 압축이 적용될 콘텐츠 유형(MIME 타입)을 지정합니다. 기본적으로 일반적인 텍스트, CSS, JavaScript, XML, RSS 타입이 포함되어 있으며, 필요에 따라 추가하거나 삭제할 수 있습니다.
SSL/TLS 설정 (HTTPS용)
- SSL Protocols: 허용할 SSL/TLS 프로토콜 버전을 정의합니다.
TLSv1.2 TLSv1.3
이 현재 권장되는 안전한 설정이며, 구버전 및 취약한 프로토콜(SSLv3, TLSv1.0, TLSv1.1)은 비활성화합니다. - SSL Prefer Server Ciphers: 활성화(On)하면 SSL/TLS 핸드셰이크 중 서버가 지원하는 암호화 스위트 리스트에서 우선적으로 선택하도록 합니다. 더 강력한 암호화를 위해 활성화를 권장합니다.
- SSL Ciphers: 서버에서 허용하는 암호화 스위트 리스트를 정의합니다. 현대적이고 강력한 암호화 스위트 조합을 사용하는 것이 HTTPS 보안을 위해 필수적이며, ServBay는 최적화된 기본값을 제공합니다.
기타 설정
- Server Tokens: Nginx가 오류 페이지와
Server
응답 헤더에 버전 정보를 표시할지를 제어합니다.On
이면 구체적인 Nginx 버전 정보를 표시하고,Off
이면 버전 정보 없이nginx
만 표시합니다. 보안상Off
권장입니다. - Index: URL이 디렉터리를 가리킬 때 Nginx가 순차적으로 찾는 기본 인덱스 파일 목록을 정의합니다. 예를 들어
index.html index.htm index.php
로 설정할 경우, Nginx는 먼저index.html
을 찾고, 없으면 이어서index.htm
, 그다음index.php
를 찾습니다.
저장 및 초기화
- Reset: 이 버튼을 클릭하면 모든 Nginx 설정이 ServBay의 기본값으로 초기화됩니다.
- Save: 이 버튼을 클릭하면 Nginx 설정에 대한 모든 변경 사항이 저장됩니다. 저장 후 ServBay가 일반적으로 변경 사항을 자동으로 적용합니다. Nginx 서비스가 실행 중일 경우, 모든 변경이 적용되려면 잠시 재시작이 필요할 수 있습니다.
중요 안내
- 이곳에서 수정하는 내용은 Nginx의 글로벌 설정(
nginx.conf
의http
블록 관련 사항)입니다. 특정 웹사이트(서버 블록 또는 가상 호스트)에 대한 상세 설정(예:server_name
,root
,location
규칙 등)은웹사이트
(Websites) 추가/수정 시 별도로 지정합니다. - 만약 설정 화면 하단에 "Service Nginx is not enabled"라는 메시지가 표시된다면, 현재 Nginx 서비스가 실행 중이 아님을 의미합니다. 이때도 구성 변경 및 저장은 가능하지만, 실제 변경 사항은 다음번 Nginx 서비스 시작 시 적용됩니다. Nginx는 ServBay의 메인 패널이나
패키지
(Packages) 메뉴에서 시작할 수 있습니다.
요약
ServBay는 Nginx 웹 서버 설정 과정을 대폭 간소화하여 개발자가 핵심 매개변수를 그래픽 인터페이스를 통해 쉽게 조정할 수 있게 해줍니다. 각 옵션의 의미를 이해하고 적절하게 조정함으로써, Nginx의 성능과 보안, 기능을 최적화하여 로컬 웹 개발 환경을 더욱 효율적으로 관리할 수 있습니다.