개요

Ncloud (네이버 클라우드) Rocky Linux (록키 리눅스) 서버에 NginX 최신 버전을 Package로 설치하고 기본 설정을 하는 방법에 대한 내용을 정리해보겠습니다.

서버 환경

⁃ OS: Rocky Linux 8.10
⁃ NginX: NginX 1.27.0
⁃ 테스트 사이트: nginx-test.com

서버 준비

Ncloud에서는 현재 Rocky Linux 8.6, 8.8, 8.10 버전을 VPC 환경에서 제공하고 있습니다. 여기서는 8.10 버전을 기준으로 소개해보겠습니다.

Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

패키지 업데이트

우선 패키지 관련한 보안-버그 수정 사항만 최소한으로 업데이트를 해보겠습니다.

  dnf -y upgrade-minimal
  
Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

NginX 버전 확인

Rocky Linux 8.10에 포함된 NginX 버전을 확인해보면 다음과 같습니다. 여기서는 1.24버전이 최신 버전이지만, 다음 단계에서 NginX 공식 사이트에 더 최신 버전이 확인되면 그 버전으로 설치하겠습니다.

  • NginX 1.14 (default)
  • NginX 1.16
  • NginX 1.18
  • NginX 1.20
  • NginX 1.22
  • NginX 1.24
Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

버전 활성화 정보 초기화

일단 위에서 확인했던 NginX 버전 활성화 정보를 초기화 합니다.
혹시 활성화된 버전이 없을 경우에는 별다른 변화 없이 과정이 완료됩니다.

  dnf module reset nginx
  
Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

NginX 최신 버전 확인

NginX 공식 사이트에서 2024-07-25 기준 최신 버전 정보를 확인해보면 다음과 같습니다.

  • [2024-04-23] nginx-1.26.1 stable version
  • [2024-04-16] nginx-1.27.0 mainline version
Ncloud(네이버 클라우드)에서 제공하는 록키 리눅스 (Rocky Linux) 8.8버전에 NginX와 PHP를 설치, 연동하는 방법

Repository 설정

우선, NginX package를 다운 받아 설치하기 위한 Repository를 설정해야 합니다. Repository 디렉토리에 nginx.repo 파일을 만들고 아래와 같은 내용을 입력합니다.

  vim /etc/yum.repos.d/nginx.repo
  
  [nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/8/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  
Ncloud(네이버 클라우드)에서 제공하는 록키 리눅스 (Rocky Linux) 8.8버전에 NginX와 PHP를 설치, 연동하는 방법

NginX 설치

여기서는 1.27.0 버전인 mainline 버전을 설치합니다.

  • [dnf config-manager] 기능을 사용해 stable 버전을 비활성화 합니다.
  • [dnf config-manager] 기능을 사용해 mainline 버전을 활성화 합니다.
  dnf config-manager --disable nginx-stable
dnf config-manager --enable nginx-mainline
  
  dnf -y install nginx
  
Ncloud(네이버 클라우드)에서 제공하는 록키 리눅스 (Rocky Linux) 8.8버전에 NginX와 PHP를 설치, 연동하는 방법

디렉토리 설정

다음으로 홈으로 사용할 디렉토리를 생성하고, 해당 디렉토리의 소유권을 설정하겠습니다.
그리고, NginX가 정상 작동하는지 확인해보기 위해 설치시에 포함된 index.html을 포함한 파일들을 홈 디렉토리로 복사합니다.

  # 테스트 사이트 홈 디렉토리 생성
mkdir -p /ncloud/data/www/nginx-test/

# 해당 디렉토리에 nginx에 권한 부여
chown -R nginx:nginx /ncloud/data/www/nginx-test

# nginx 샘플 페이지를 사이트 디렉토리로 복사
cp /usr/share/nginx/html/*.* /ncloud/data/www/nginx-test/

# 복사된 파일들 확인
ls -al /ncloud/data/www/nginx-test/
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

환경 설정

설정 파일 위치

NginX 환경 설정 파일의 위치는 /etc/nginx/ 디렉토리입니다. tree 명령으로 해당 디렉토리에서 conf와 관련된 파일 리스트와 디렉토리 구조를 확인하면 다음과 같습니다.

   tree -P *conf* /etc/nginx/
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

기본 설정 파일

위에서 확인할 수 있는 파일들 중에서 기본 환경 설정 파일은 /etc/nginx/nginx.conf 입니다.
nginx.conf 파일을 열어보면 아래쪽에 include /etc/nginx/conf.d/*.conf 와 같이 conf.d 디렉토리에 있는 설정 파일을 모두 불러오도록 되어 있습니다.
그리고, 현재는 /etc/nginx/conf.d/default.conf 파일에 기본 설정이 저장되어 있습니다.

물론, 사이트 설정을 default.conf 파일에 직접 설정해도 되지만, 여러 개의 사이트를 설정해야 하는 경우도 생각해서 conf.d 디렉토리에 사이트 이름별로 환경 설정 파일을 별도로 만들어서 진행하도록 하겠습니다.

  vim /etc/nginx/nginx.conf
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

기본 설정 주석 처리

/etc/nginx/conf.d/default.conf 파일을 열어서 모두 주석 처리합니다.

  vim /etc/nginx/nginx.conf
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

환경 설정 파일 생성

nginx-test.com 이라는 도메인의 사이트 설정을 nginx-test.conf 설정 파일을 생성해서 저장합니다.

  vim /etc/nginx/conf.d/nginx-test.conf
  
    server {
    listen    80;

    # 사이트 도메인 설정
    server_name    nginx-test.com www.nginx-test.com;

    # 홈 디렉토리, 기본 문서 설정
    root      /ncloud/data/www/nginx-test;
    index     index.html index.htm;

    # 404 error 페이지 설정
    error_page 404 /404.html;
      location = /404.html {
    }

    # 50x error 페이지 설정
    error_page 500 502 503 504 /50x.html;
      location = /50x.html {
      root    /ncloud/data/www/nginx-test;
    }

    # .htaccess 파일 접근 금지 설정
    location ~ /\.ht {
      deny    all;
    }
}
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

NginX 설정 검사

다음 명령어로 위에서 설정한 환경설정에 오류가 없는지 확인합니다.

  nginx -t
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

NginX 실행

설정을 모두 마쳤으면 NginX를 시작하고 상태를 확인합니다.

   systemctl enable nginx
 systemctl start nginx
 systemctl status nginx
  
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

hosts 파일 수정

지금과 같이 테스트용으로 임의 설정한 도메인(nginx-test.com)으로 접속하게 될 경우에는 hosts 파일을 수정해야 합니다.
실제 도메인을 사용할 경우에는 아래 과정이 필요 없기에 다음 단계로 바로 이동하시면 됩니다.

윈도우 10에서 hosts 파일은 C:\Windows\System32\drivers\etc 에 존재하는데 직접 수정할 수가 없으므로 다음과 같은 단계를 거쳐야 합니다.

  1. C:\Windows\System32\drivers\etc\hosts 파일을 임의의 작업 폴더 (예: D:\Work)로 복사합니다.
  2. 복사한 hosts 파일을 수정해서 123.456.789.123 nginx-test.com 처럼 접속할 IP 주소와 도메인을 추가합니다.
  3. 수정한 파일을 C:\Windows\System32\drivers\etc 위치로 덮어쓰기 합니다.
  4. 덮어쓰기 할 때 관리자 권한이 필요하다는 안내 메시지가 나타나면 [계속] 버튼을 클릭합니다.
Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법 Ncloud CentOS 서버에 NginX SSL 인증서를 설정하는 방법 Ncloud CentOS 서버에 NginX SSL 인증서를 설정하는 방법

사이트 접속

NginX가 정상 작동하면 아래와 같이 서버 접속 화면을 확인할 수 있습니다.

Ncloud Rocky Linux 서버에 NginX를 Package로 설치하고 기본 설정을 하는 방법

참고 URL

  1. Rocky Linux NginX 설치 기본 가이드
    https://docs.rockylinux.org/guides/web/nginx-mainline/

  2. Rocky Linux NginX Multi Site 설치 가이드
    https://docs.rockylinux.org/guides/web/nginx-multisite/

문서 업데이트 내역

날짜 내용
2023-06-29 문서 최초 생성
2024-07-26 록키 리눅스 8.10 적용