ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <오픈소스 기술지원 전문기업 (주)제스트정보기술>- NginX 시스템 서비스 등록
    WEBWAS/NGiNX 2023. 7. 24. 18:46

     

    안녕하세요 (주) 제스트정보기술 입니다.

    오늘은 Nginx를 시스템의 서비스에 등록하여 관리하는 방법을 알아보도록 하겠습니다.

     

    1. 시스템 서비스의 이해

    먼저 시스템 서비스에 대하여 알아보겠습니다.

    리눅스 기반의 운영체제는 대부분 시스템 V방식의 init 데몬을 사용합니다.

    init 데몬은 어느 상태의 컴퓨터를 의미하는 runlevel 개념을 기반으로 실행이 됩니다.

    런레벨
    상태
    0(Halt)
    시스템 중지
    1(Single user mode)
    싱글유저 모드(복구 모드)
    2(Multiuser、 without NFS)
    멀티유저 모드、 NFS 지원 없음
    3(Full multiuser mode)
    완전 멀티유저 모드
    4(Unused)
    사용되지 않음
    5(X11)
    그래픽 인터페이스 모드
    6(Reboot)
    시스템 재부팅

    init 데몬은 어느 상태의 컴퓨터를 의미하는 runlevel 개념을 기반으로 실행이 됩니다.

    서비스가 특정 런레벨에서 시작되게 스케줄링합니다。 런레벨마다 해당 런레벨에서 실행할 스크립트를 포함하는 디렉토리가 있습니다.

    해당 디렉토리 (rc0.d ~ rc6.d)에 들어가 보면 실제 파일은 없고 링크만 존재합니다.

    실제 스크립트는 init.d 에 존재하며 심볼릭 링크로 사용합니다.

    위 내용은 시스템 서비스에 대한 의미이며 실제 nginx 서비스 등록과는 내용이 무관한 부분도 존재합니다.

    2. 서비스 등록

    nginx의 서비스 등록 방법이며 이를 이용하여 systemctl로 nginx를 관리할 수 있습니다.

    (1) 설정 위치 및 파일명

     

    /lib/systemd/system/nginx.service
     

     

    (2) 파일 내용

    [Unit]
    Description=The NGINX HTTP and reverse proxy server
    After=syslog.target network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target

    [Service]
    Type=forking
    PIDFile=/nginx/logs/nginx.pid
    ExecStartPre=/nginx/sbin/nginx -t
    ExecStart=/nginx3/sbin/nginx
    ExecReload=/nginx/sbin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target

    (3) 스크립트 인식

     

    # systemctl daemon-reload

    (4) 스크립트 등록

    # systemctl enable nginx
    
    # pwd
    /etc/systemd/system/multi-user.target.wants
    
    # ls -l nginx*
    lrwxrwxrwx 1 root root 33  4월 10 15:00 nginx.service -> /lib/systemd/system/nginx.service

     

    3. 서비스 컨트롤

    (1) 서비스 가동 / 상태 확인

     
    # systemctl start nginx
    
    # systemctl status nginx
    ● nginx.service - The NGINX HTTP and reverse proxy server
         Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
         Active: active (running) since Tue xxxx-xx-xx 14:09:35 KST; 6s ago
        Process: 568041 ExecStartPre=/usr/local/nginx/1.23.3/sbin/nginx -t (code=exited, status=0/SUCCESS)
        Process: 568042 ExecStart=/usr/local/nginx/1.23.3/sbin/nginx (code=exited, status=0/SUCCESS)
       Main PID: 568043 (nginx)
          Tasks: 5 (limit: 9444)
         Memory: 14.0M
         CGroup: /system.slice/nginx.service
                 ├─568043 nginx: master process /usr/local/nginx/1.23.3/sbin/nginx
                 ├─568044 nginx: worker process
                 ├─568045 nginx: worker process
                 ├─568046 nginx: worker process
                 └─568047 nginx: worker process
    
     x월 xx 14:09:35 xxx systemd[1]: Starting The NGINX HTTP and reverse proxy server...
     x월 xx 14:09:35 xxx nginx[568041]: nginx: the configuration file /usr/local/nginx/1.23.3/conf/nginx.conf syntax is ok
     x월 xx 14:09:35 xxx nginx[568041]: nginx: configuration file /usr/local/nginx/1.23.3/conf/nginx.conf test is successful
     x월 xx 14:09:35 xxx systemd[1]: Started The NGINX HTTP and reverse proxy server.

    (2) 서비스 중지 / 상태 확인

     
    # systemctl stop nginx
    
    # systemctl status nginx
    ● nginx.service - The NGINX HTTP and reverse proxy server
         Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
         Active: inactive (dead) since Tue xxxx-xx-xx 14:15:13 KST; 2s ago
        Process: 568041 ExecStartPre=/usr/local/nginx/1.23.3/sbin/nginx -t (code=exited, status=0/SUCCESS)
        Process: 568042 ExecStart=/usr/local/nginx/1.23.3/sbin/nginx (code=exited, status=0/SUCCESS)
        Process: 568177 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
       Main PID: 568043 (code=exited, status=0/SUCCESS)
    
     x월 xx 14:09:35 xxx systemd[1]: Starting The NGINX HTTP and reverse proxy server...
     x월 xx 14:09:35 xxx nginx[568041]: nginx: the configuration file /usr/local/nginx/1.23.3/conf/nginx.conf syntax is ok
     x월 xx 14:09:35 xxx nginx[568041]: nginx: configuration file /usr/local/nginx/1.23.3/conf/nginx.conf test is successful
     x월 xx 14:09:35 xxx systemd[1]: Started The NGINX HTTP and reverse proxy server.
     x월 xx 14:15:13 xxx systemd[1]: Stopping The NGINX HTTP and reverse proxy server...
     x월 xx 14:15:13 xxx systemd[1]: nginx.service: Succeeded.
     x월 xx 14:15:13 xxx systemd[1]: Stopped The NGINX HTTP and reverse proxy server.

     

    오늘은 여기까지입니다.
    그럼 다음 시간에 NginX에 대해 추가로 알아보겠습니다.

    감사합니다.


    <제스트정보기술 기술지원>

    제스트정보기술은 20년 이상의 WEB/WAS 기술지원 경험과 노하우를 바탕으로

    고객의 상용소프트웨어(Jeus, weblogic,JBoss EAP, Oracle DB등)에 소요되는 획기적인 비용절감과 시스템 서비스의 성능을 전반적으로 개선하여

    기술지원, 컨설팅을 제공하고 있습니다.

    오픈소스 기반의 SW 설치 및 구성 , 시스템 구축 이후 케어팩(Care Pack) 서비스를 통하여 기존 고비용에 따른 상용 SW 운영 비용의 획기적인 절감은 물론,

    고객의 운영 시스템을 안정적으로 지원하기 위한 서비스를 제공하고 있습니다.

     

    <오픈소스 기술지원 문의>

    영업지원 : sales@xest.kr

    전화번호 : 02-558-5918

    팩스번호 : 02-558-5913

    홈페이지 : http://www.xest.kr

Designed by Tistory.