아무런 조치 없이 리눅스의 패키지 관리자를 통해서 웹 서버인 NGINX를 설치하게 되면 자신이 원하는 버전을 설치하지 못할뿐더러, 현재 패키지 관리자에선 구 버전이 기본 설정되어 있습니다. 실제 운영환경에서 구 버전은 보안 문제든 기능 문제든 치명적으로 작용할 수 있습니다. 패키지 관리자를 업데이트해서 NGINX 최신 버전 및 원하는 버전을 설치해보도록 하겠습니다.
NGINX의 버전 관리
일반적으로, 많이 알려진 버전은 단 두 가지인데요. Mainline 버전과 Stable 버전이 있습니다. 새로운 특징, 기능, 버그 패치 등은 Mainline 버전에서 작업하고 그 이후에, 새로운 기능이 추가되지 않고 버그 패치만 하는 게 Stable 버전입니다. 버전 선택에 관련해서 NGINX의 공식 입장은 다음과 같습니다.
We recommend that in general you deploy the NGINX mainline branch at all times. The main reason to use the stable branch is that you are concerned about possible impacts of new features, such as incompatibility with third-party modules or the inadvertent introduction of bugs in new features.
기본적으로 Mainline 버전을 택하고 지속적으로 업데이트 하기를 권장하지만 Stable 버전은 서드파티 모듈과의 호환성 문제 또는 새로운 기능이 도입됨에 따라, 생길 수 있는 문제 때문에 지속적으로 업데이트하지 못할 때 사용된다고 나와 있습니다.
따라서, 버전을 선택할 때 환경을 고려하여 신중하게 선택하는 것이 중요할 것 같습니다.
설치
RHEL/CentOS 계열
의존성 설치:
sudo yum install yum-utils
yum 저장소에 nginx 저장소를 추가:
sudo vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
(Optinal)mainline 버전을 설치하려면 다음 명령어를 수행:
sudo yum-config-manager --enable nginx-mainline
yum 저장소 갱신:
sudo yum update
NGINX 설치:
sudo yum install -y nginx
NGINX 버전 확인:
nginx -v
Output
nginx version: nginx/1.14.2
Debian/Ubuntu 계열
의존성 설치:
sudo apt install curl gnupg2 ca-certificates lsb-release
apt 저장소에 원하는 버전의 nginx 저장소 추가:
# Debian 계열
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
# Ubuntu 계열
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
패키지 신뢰성 확인:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
키 신뢰성 확인:
sudo apt-key fingerprint ABF5BD827BD9BF62
apt 저장소 갱신:
sudo apt update
NGINX 설치:
sudo apt-get install nginx
NGINX 버전 확인:
nginx -v
Output
nginx version: nginx/1.14.2
에러
RHEL/CentOS 계열
1. yum 저장소에 NGINX 저장소를 등록하고, yum 관련 명령어 실행 시에 다음과 같은 에러 발생
failure: repodata/repomd.xml from nginx-stable: [Errno 256] No more mirrors to try.
http://nginx.org/packages/centos/7Server/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
저장소에 등록 내용 중 baseurl에서 $releasever 값이 잘못된 경우입니다. 이 경우에 자신의 운영체제 버전을 확인해서 넣어줍시다.
Example
http://nginx.org/packages/centos/7/$basearch/
'Server Engineering > Linux' 카테고리의 다른 글
Postgresql WAL(Write-Ahead Logging) 아카이브 및 풀 백업과 복구 (0) | 2019.05.22 |
---|---|
ulimit 명령어로 시스템 자원 최대로 활용하기 (0) | 2018.05.16 |
netcat(nc)를 이용해 포트 열기 (0) | 2018.05.11 |