Windows용 nginx

Windows용 nginx 버전은 Cygwin 에뮬레이션 레이어가 아니라 네이티브 Win32 API를 사용합니다. 현재 select() 및 poll()(1.15.9) 연결 처리 메서드만 사용하고 있으므로 높은 성능과 확장성은 기대해서는 안 됩니다. 이와 같은 문제로 다른 알려진 문제가 있는 Windows용 nginx 버전은 beta 버전으로 간주합니다. 현재는 UNIX용 ngnix 버전과 거의 동일합니다. 단, XSLT 필터, 이미지 필터, GeoIP 모듈, 임베디드 Perl 언어는 예외입니다.

nginx/Windows를 설치하려면 최신 메인라인 버전 배포판(1.21.5)을 다운로드하세요. nginx의 메인라인 버전에는 모든 알려진 문제의 수정 사항이 포함됩니다. 배포판의 압축을 해제한 다음, nginx-1.21.5 디렉터리에서 nginx를 실행합니다. 다음은 드라이브 C: root 디렉터리의 예시입니다.

cd c:\
unzip nginx-1.21.5.zip
cd nginx-1.21.5
start nginx

tasklist 명령줄 유틸리티를 실행하여 nginx 프로세스를 확인합니다.

C:\nginx-1.21.5>tasklist /fi "imagesname eq nginx.exe"

Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K

프로세스 중 하나는 마스터 프로세스이고 다른 하나는 작업자 프로세스입니다. nginx가 시작되지 않으면 오류 로그 파일 logs\error.log에서 이유를 확인해보세요. 로그 파일이 생성되지 않았다면 그 이유가 Windows Event Log에 보고되어야 합니다. 예상한 페이지가 아니라 오류 페이지가 표시된 경우, logs\error.log 파일에서 이유를 확인해보세요.

nginx/Windows는 구성에서 상대 경로에 대한 접두사로 실행된 디렉터리를 사용합니다. 위의 예시에서 접두사는 C:\nginx-1.21.4\입니다. 구성 파일의 경로는 슬래시를 사용하여 UNIX 스타일로 지정해야 합니다.

access_log    log/site.log
root          C:/web/html;

nginx/Windows는 (서비스가 아니라) 표준 콘솔 애플리케이션으로 실행되고 다음의 명령으로 실행할 수 있습니다.

nginx -s stop빠른 종료
nginx -s quit점진적 종료
nginx -s reload구성 변경, 새로운 구성으로 새로운 작업자 프로세스 시작, 기존 작업자 프로세스의 점진적 종료
nginx -s reopen로그 파일 다시 열기

알려진 문제

  • 여러 작업자를 시작할 수 있지만 그중 하나만 작동합니다.
  • UDP 프록시 기능은 지원하지 않습니다.

향후 예정된 개선 사항

  • 서비스로 실행합니다.
  • I/O 완료 포트를 연결 처리 메서드로 사용합니다.
  • 하나의 작업자 프로세스 내에 여러 작업자 스레드를 사용합니다.
Comments are closed.