EOS된 Nginx 버전 업그레이드 방법

Jiyeon's TechNote·2024년 11월 12일
0

일반적인 Nginx 버전 업그레이드가 아닌 EOS된 Amazon Linux2에서의 버전 업그레이드 입니다.

Amazon Linux 2에서 제공하는 amazon-linux-extras를 통해 설치 가능한 Nginx 버전은 1.22.1까지만 지원되며, 이는 보안적으로 최신 상태가 아닙니다. 그러나 1.26.2 이상의 버전을 신속하게 사용해야 하는 상황이 발생한다면, AWS에서는 더이상 업데이트 계획이 없기때문에 외부 저장소를 추가하여 최신 버전으로 업그레이드할 수 있습니다.

AWS 답변
Amazon Linux 2는 "AL2 End of Life is 2025-06-30" 예정이며,
고객님과 동일한 사례의 내역을 살펴 보면 현재로서는 "amaon-linux-extra를 통한 nginx package version" 
신규 버전 지원은 예정에 없는 것으로 파악 됩니다.

이 글에서는 Amazon Linux 2에서 새로운 저장소를 추가하여 Nginx를 최신 안정 버전으로 업그레이드하는 방법을 다룹니다.

  1. nginx.repo 추가
sudo vi /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/amzn2/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority = 1
  1. 레포 enable 해주기
sudo yum-config-manager --enable nginx-stable
  1. yum 캐시 날리기
sudo yum clean all
  1. Nginx 설치 가능 버전 리스트 보기
# 리스트 확인
sudo yum --showduplicate list nginx

# install 하면 모듈 충돌 발생함
sudo yum install -y nginx
  1. 기존 설치 되어있는 모듈 리스트 확인
rpm -qa | grep nginx

# 이런 모듈들 있음
nginx-filesystem-1.22.1-1.amzn2.0.4.noarch
nginx-mod-http-xslt-filter-1.22.1-1.amzn2.0.2.x86_64
nginx-1.22.1-1.amzn2.0.4.x86_64
nginx-mod-stream-1.22.1-1.amzn2.0.2.x86_64
nginx-core-1.22.1-1.amzn2.0.4.x86_64
nginx-mod-http-image-filter-1.22.1-1.amzn2.0.2.x86_64
nginx-mod-http-perl-1.22.1-1.amzn2.0.2.x86_64
nginx-mod-http-geoip-1.22.1-1.amzn2.0.2.x86_64
  1. 충돌 발생하는 모듈 삭제
# nginx-core는 지우면 nginx.conf가 삭제됨 주의해야함
# nginx-core 제외 충돌 발생하는 모듈만 삭제해야함
sudo yum remove nginx-mod-http-xslt-filter nginx-mod-http-geoip nginx-mod-http-perl nginx-mod-http-image-filter nginx-mod-mail nginx-mod-stream -y

# 모듈 지우고 install 해보면 nginx-core 패키지 충돌 오류남 
sudo yum install -y nginx
  1. conf 파일 삭제 되지 않도록 swap으로 현재 설치된 패키지를 다른 패키지로 교체
sudo yum swap nginx-core nginx -y
  1. 필요 모듈을 다시 설치, 추가한 레포에서 모듈 지원하는지 확인
yum list available --disablerepo=amzn2extra-nginx1 --enablerepo=nginx-stable | grep nginx-mod
  1. 리스트에서 필요 모듈 설치
sudo yum install nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-xslt -y --disablerepo=amzn2extra-nginx1 --enablerepo=nginx-stable
  1. Nginx 재시작
sudo systemctl daemon-reload
sudo systemctl restart nginx

#버전 확인
nginx -v
profile
바쁘다 바빠 현대사회 엔지니어🙋‍♀️

0개의 댓글