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

개요

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

서버 환경

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

서버 준비

Ncloud 콘솔에서 Rocky Linux 8.6 서버를 아래와 같이 준비했습니다.

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

패키지 업데이트

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

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

리포지토리 설정 파일 추가

NginX 최신버전(mainline)을 설치하기 위해서는 epel-release 리포지토리 패키지가 필요하고, epel-release 리포지토리 패키지를 설치하기 위해서는 Extras 저장소 설정 파일이 필요합니다.
우선, Extras 저장소 설정 파일을 준비합니다. 이미 생성되어 있는 경우에는 다음 단계로 넘어가도 되고, 그렇지 않을 경우 아래와 같은 내용으로 파일을 생성합니다.

~# vi /etc/yum.repos.d/Rocky-Extras.repo
# Rocky-Extras.repo

[extras]
name=Rocky Linux $releasever - Extras
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever
baseurl=http://repo.ncloud.com/rocky/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

EPEL 저장소 패키지 설치

다음으로 epel-release 저장소 패키지를 설치하겠습니다.

~# dnf -y install epel-release
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법

NginX 버전 선택

설치할 NginX 버전 버전을 선택합니다.

NginX 버전 리스트

우선, Ncloud Rocky Linux 8.6에서 지원하는 NginX 버전을 확인합니다.
리스트를 살펴보면 1.14가 기본 버전인 것을 알 수 있습니다.

~# dnf module list nginx
  • nginx 1.14 (default)
  • nginx 1.16
  • nginx 1.18
  • nginx 1.20
  • nginx mainline
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법

버전 활성화 정보 초기화

다음으로 위에서 확인했던 nginx 버전 활성화 정보를 초기화 합니다. 현재 활성화 된 버전이 존재하느냐에 따라 나타나는 메시지가 다릅니다.

~# dnf module reset nginx
  • 활성화 된 버전이 없을 때
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법
  • 활성화 된 버전이 있을 때
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법

mainline 버전 활성화

최신 버전인 mainline 버전을 활성화합니다.

~# dnf module enable nginx:mainline
NginX는 stable, mainline 두가지 버전이 있습니다. NginX의 공식 설명에 따르면 버그 수정이나 보안 패치 등은 항상 mainline 버전에 먼저 적용되기 때문에 mainline을 사용하는 것을 추천한다고 합니다.
stable 버전을 사용하는 주된 경우는 third-party 모듈을 사용하고 있어서 신규 버전에서 호환성 문제가 발생할 가능성이 걱정될 때라고 합니다.
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법

NginX 설치

NginX를 설치합니다. 설치된 버전은 다음과 같습니다.

~# dnf -y install nginx
~# nginx -v
  • NginX: 1.23.1
Ncloud Rocky Linux 서버에 NginX를 Package로 치하고 기본 설정을 하는 방법

디렉토리 설정

다음으로 홈으로 사용할 디렉토리를 생성하고, 해당 디렉토리의 소유권을 설정하겠습니다.
그리고, 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 파일을 열어보면 아래와 같이 server {…}로 시작되는 사이트 설정에 관련된 부분도 있지만,
include /etc/nginx/conf.d/*.conf 와 같이 conf.d 디렉토리에 있는 설정 파일을 모두 불러오도록 되어 있습니다.

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

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

기본 설정 주석 처리

server {…} 부분을 모두 주석 처리합니다.

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

환경 설정 파일 생성

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

~# vi /etc/nginx/conf.d/nginx-test.conf
  server {
    listen    80;
    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를 시작하고 상태를 확인합니다.

~# 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 설치 기본 가이드
  2. Rocky Linux NginX Multi Site 설치 가이드