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

개요

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

서버 환경

⁃ OS: Ubuntu 20.04
⁃ NginX: NginX 1.21.6

NginX Signing Key 설정

NginX Package 설치에 필요한 Signing Key를 설정합니다.

gnupg2 등 설치

~# sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

NginX Signing Key 가져오기

~# curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

NginX Signing Key 검증

위에서 가져온 Signing Key를 아래 명령어로 검증합니다.
검증한 FingerPring 값이 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 와 일치하는지 확인합니다.

~# gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

Repository 설정

NginX package를 다운 받아 설치하기 위해서는 Repository를 설정해야 합니다.
아래 명령어로 리포지토리를 설정합니다. NginX의 stable, mainline 두가지 버전 중에서 여기서는 mainline 버전을 설치합니다.

nginx-mainline

~# echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
    http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

nginx-stable

~# echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
    http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
NginX는 stable, mainline 두가지 버전이 있습니다. NginX의 공식 설명에 따르면 버그 수정이나 보안 패치 등은 항상 mainline 버전에 먼저 적용되기 때문에 mainline을 사용하는 것을 추천한다고 합니다.
stable 버전을 사용하는 주된 경우는 third-party 모듈을 사용하고 있어서 신규 버전에서 호환성 문제가 발생할 가능성이 걱정될 때라고 합니다.
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

Repository 우선 순위 설정

배포판에 기본 설정된 리포지토리 보다 위에서 설정한 리포지토리를 우선하도록 설정합니다.

~# echo -e "Package: *\nPin: origin nginx.org\nPin: \
    release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

NginX 설치

설정을 마쳤으면 apt로 NginX를 설치합니다.

~# sudo apt update
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법
~# sudo apt install nginx
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

디렉토리 설정

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

~# mkdir -p /ncp/data/www
~# chown -R nginx:nginx /ncp/data/www
~# cp /usr/share/nginx/html/index.html /ncp/data/www/index.html
~# ls -al /ncp/data/www
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

환경 설정

주로 변경할 환경 설정 파일은 /etc/nginx/conf.d/default.conf 입니다.

~# vi /etc/nginx/conf.d/default.conf


Port와 Server Name 설정

80이 아닌 다른 Port를 사용할 경우나 도메인을 설정하게 될 경우 2, 3 라인에 있는 아래 항목들을 수정하면 됩니다.

server_name  localhost;
server_name  nginx-test.com;
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

홈 디렉토리, 기본 문서 설정

앞에서 만들었던 홈 디렉토리 경로를 설정하고 기본 문서를 지정하는 곳입니다.

# 변경 전
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

# 변경 후
    root   /ncp/data/www;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ = 404;
    }
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

error 페이지 설정

404, 500 등의 error 페이지를 설정할 경우 아래 내용들을 수정하면 됩니다.

# 변경 전
    #error_page  404              /404.html;

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

# 변경 후
    error_page  404              /404.html;

    location = /50x.html {
        root   /ncp/data/www;
    }
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

.htaccess 파일 접근 금지 설정

.htaccess 파일에 대한 접근 금지를 설정할 경우 아래 내용을 주석 해제하면 됩니다.

# 변경 전
    #location ~ /\.ht {
    #    deny  all;
    #}

# 변경 후
    location ~ /\.ht {
        deny  all;
    }
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

NginX 실행

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

~# systemctl start nginx
~# systemctl status nginx
Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

사이트 접속

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

Ncloud Ubuntu에서 NginX 설치, 설정하는 방법

참고 URL

  1. NginX Linux packages 설치 가이드
  2. CentOS에서 NginX 설치, 설정하는 방법