윈도우에 NGINX를 서비스 등록까지 완벽하게 설치해보자

NGINX

NGINX 윈도우 버전 다운로드와 설치

nginx_win_01

NGINX 공식사이트에서 윈도우용 바이너리를 다운로드 합니다.

다운로드 받은 파일의 압축을 풀어 적당한 위치에 옮겨 준 후 윈도우의 명령 프롬프트(CMD)를 실행합니다.

CMD에서 NGINX의 경로로 이동후 nginx.exe를 실행합니다. 혹은 아주 심플하게 nginx.exe를 더블클릭해 실행합니다.

CMD에서 NGINX의 명령어는 다음과 같습니다.

  • nginx.exe -s stop # 강제 종료 (fast shutdown)
  • nginx.exe -s quit # 접속한 사용자의 처리가 다 끝난 후 종료 (graceful shutdown)
  • nginx.exe -s reload # 설정파일 갱신(reloading the configuration file)
  • nginx.exe -s reopen # 로그파일 갱신(reopening the log files)

명령어는 리눅스 베이스의 NGINX와 같습니다.

방화벽에 NGINX 등록하기

nginx_win_firewall_01

nginx_win_firewall_02

제어판 – Windows 방화벽에서 왼쪽 탭의 ‘Windows 방화벽을 통해 앱 또는 기능 허용’ 을 클릭 후 ‘다른 앱 허용’ 버튼을 클릭해 NGINX.exe 를 등록 한 후 사용하는 네트워크에 맞춰 방화벽을 적용시켜주면 NGINX에서 사용하는 포트는 자동으로 열립니다.

윈도우 서비스에 NGINX 등록

nginx_win_02

위의 방법으로 NGINX를 실행했을 경우 로그인한 계정 위에 백그라운드로 프로그램이 떠있기 때문에 시스템 데몬이 아닌 응용프로그램처럼 취급됩니다. 다시 말해 사용자 계정을 로그오프시 NGINX의 데몬도 죽어버리는데요.

윈도우를 부팅후 로그인 하지 않아도 자동으로 실행되게 하기위해 데몬을 스케쥴러에 등록하면 어떨까 했는데 시스템 종료에 대한 트리거를 지원하지 않아 스케쥴러로 해결을 못하지 못했습니다. 강제종료가 되버리면 프로그램의 오작동이나 에러를 피하기 위해 시작 프로그램에 등록해 사용하는 원시적인 방법은 사용하지 않고 윈도우의 서비스에 등록할수 있을까 해서 구글링을 하다 한 블로그에서 간단하게 서비스로 등록할수 있는 툴을 올려놔서 사용해봤습니다. Github 링크도 있었는데 2011년에 업데이트가 멈춰있는걸로 봐선 사용상에 문제가 없나봅니다. 실제로도 잘 작동하구요.

컴파일된 파일인 nginx-svc-bin.zip 을 다운받아 nginx 안에 풀어줍니다. 폴더 안의 readme 파일을 열어보면 사용방법이 자세하게 설명되어 있지만 간단하게 설명하자면

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="nginxPath" value="C:Program Files (x86)nginx"/>
    <add key="gracefulQuit" value="false"/>
    <add key="forceStop" value="true"/>
  </appSettings>
</configuration>

nginxsvc.exe.config 파일을 에디터로 열어 4번째 라인의 경로를 NGINX의 경로로 설정해 준 다음 저장합니다.

참고로 5~6번째 줄은 서비스 종료시 graceful shutdown으로 종료할지, fast shutdown으로 종료할지를 true/false 값으로 설정할수 있습니다.

nginxsvc.exe /install

그리고 CMD로 nginx-svc-bin의 파일이 풀린 위치로 이동 후 위의 명령어를 입력하면 윈도우의 서비스에 NGINX가 등록이 완료됩니다.

nginxsvc.exe /uninstall

반대로 서비스에서 삭제하고 싶으면 위와 같이 입력합니다.

nginx_win_03

정상적으로 등록이 되었는지 확인합니다.

NGINX 실행 오류시

10013: An attempt was made to access a socket in a way forbidden by its access permissions

만일 NGINX 실행 후 기본적인 localhost 주소로 접속이 되지 않아 error.log 파일을 확인했을때 위와 같은 메시지가 보인다면 다른 프로그램 또는 데몬이 80 포트를 사용하고 있어 충돌이 난 경우이므로 80번 포트를 사용하는 프로그램 및 서비스를 중지해야 NGINX가 제대로 구동됩니다.

윈도우에서 사용중인 포트를 확인하는 방법은 다음을 참고하세요.

참고 : 윈도우10 열린 포트 확인 방법

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

nginx title 03
NGINX WebDAV 설정 방법
WebDAV(Web Distributed Authoring and Versioning)는 http를 이용해 웹서버에 저장되어 있는 파일을 여러 사용자가 편집하기 위해 고안된 프로토콜입니다. 실제로는 FTP 대용으로…
windows nginx php setting title
윈도우 NGINX PHP 연동 및 서비스 등록 방법
이전 포스트에서 윈도우에 NGINX를 설치하고 서비스에 등록하는 방법까지 알아봤는데요. NGINX를 개발 환경 또는 웹서버 환경으로 만들기 위해서 PHP를 설치해야 하는…