개요
Ncloud (네이버 클라우드) Ubuntu 서버에 NginX 최신 버전을 Package로 설치하고 기본 설정을 하는 방법에 대한 내용을 정리해보겠습니다.
서버 환경
⁃ NginX: NginX 1.21.6
NginX Signing Key 설정
NginX Package 설치에 필요한 Signing Key를 설정합니다.
gnupg2 등 설치
~# sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
NginX Signing Key 가져오기
~# curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
NginX Signing Key 검증
위에서 가져온 Signing Key를 아래 명령어로 검증합니다.
검증한 FingerPring 값이 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
와 일치하는지 확인합니다.
~# gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
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
stable 버전을 사용하는 주된 경우는 third-party 모듈을 사용하고 있어서 신규 버전에서 호환성 문제가 발생할 가능성이 걱정될 때라고 합니다.
Repository 우선 순위 설정
배포판에 기본 설정된 리포지토리 보다 위에서 설정한 리포지토리를 우선하도록 설정합니다.
~# echo -e "Package: *\nPin: origin nginx.org\nPin: \
release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
NginX 설치
설정을 마쳤으면 apt로 NginX를 설치합니다.
~# sudo apt update
~# sudo apt install 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
환경 설정
주로 변경할 환경 설정 파일은 /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;
홈 디렉토리, 기본 문서 설정
앞에서 만들었던 홈 디렉토리 경로를 설정하고 기본 문서를 지정하는 곳입니다.
# 변경 전
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;
}
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;
}
.htaccess 파일 접근 금지 설정
.htaccess 파일에 대한 접근 금지를 설정할 경우 아래 내용을 주석 해제하면 됩니다.
# 변경 전
#location ~ /\.ht {
# deny all;
#}
# 변경 후
location ~ /\.ht {
deny all;
}
NginX 실행
설정을 모두 마쳤으면 NginX를 시작하고 상태를 확인합니다.
~# systemctl start nginx
~# systemctl status nginx
사이트 접속
NginX가 정상 작동하면 아래와 같이 서버 접속 화면을 확인할 수 있습니다.
참고 URL
- NginX Linux packages 설치 가이드
- CentOS에서 NginX 설치, 설정하는 방법