nginx 설치
nginx는 운영 체제에 따라 다르게 설치할 수 있습니다.
Linux에 설치
Linux의 경우 nginx.org의 nginx 패키지를 사용할 수 있습니다.
FreeBSD에 설치
FreeBSD의 경우 패키지에서 또는 포트 시스템을 통해 nginx를 설치할 수 있습니다. 포트 시스템은 뛰어난 유연성을 제공하여 다양한 옵션 중에서 선택할 수 있습니다. 포트는 지정된 옵션으로 nginx를 컴파일하고 설치합니다.
소스에서 빌드
패키지 및 포트에서 제공하지 않는 일부 특별한 기능이 필요한 경우 소스 파일에서도 nginx를 컴파일 할 수 있습니다. 이 접근 방식은 더 유연하지만, 초보자에게는 복잡할 수 있습니다. 자세한 내용은 소스에서 nginx 빌드를 참조하십시오.
nginx : Linux 패키지
지원되는 배포판 및 버전
nginx 패키지는 다음 Linux 배포판 및 버전에 사용할 수 있습니다.
RHEL/CentOS
버전 지원 플랫폼
7.4+ x86_64, ppc64le, aarch64/arm64
8.x x86_64, aarch64/arm64, s390x
Debian
버전 지원 플랫폼
10.x“buster” x86_64, i386, aarch64/arm64
11.x“bullseye” x86_64, aarch64/arm64
Ubuntu
버전 지원 플랫폼
18.04“bionic” x86_64, aarch64/arm64
20.04“focal” x86_64, aarch64/arm64, s390x
21.04“hirsute” x86_64, aarch64/arm64
21.10“impish” x86_64, aarch64/arm64
SLES
버전 지원 플랫폼
12 SP5+ x86_64
15 SP2+ x86_64
Alpine
버전 지원 플랫폼
3.12 x86_64, aarch64/arm64
3.13 x86_64, aarch64/arm64
3.14 x86_64, aarch64/arm64
3.15 x86_64, aarch64/arm64
Amazon Linux
버전 지원 플랫폼
2 (LTS) x86_64, aarch64/arm64
설치 지침
새 시스템에 처음으로 nginx를 설치하기 전에 nginx 패키지 리포지토리를 설정해야 합니다. 이후에 리포지토리에서 nginx를 설치하고 업데이트할 수 있습니다.
RHEL/CentOS
다음 전제 조건을 설치합니다.
sudo yum install yum-utils
yum 리포지토리를 설정하려면 다음 콘텐츠를 포함하여 /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
module_hotfixes=true
[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
module_hotfixes=true
기본적으로 안정적인 nginx 패키지용 리포지토리가 사용됩니다. 메인라인 nginx 패키지를 사용하려면 다음 명령을 실행합니다.
sudo yum-config-manager --enable nginx-mainline
nginx를 설치하려면 다음 명령을 실행합니다.
sudo yum install nginx
GPG 키를 승인하라는 메시지가 표시되면 지문이 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62와 일치하는지 확인하고 일치하면 승인합니다.
Debian
다음 전제 조건을 설치합니다.
sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
apt에서 패키지 신뢰성을 확인할 수 있도록 공식적인 nginx 서명 키를 가져옵니다. 다음과 같이 키를 가져옵니다.
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
다운로드한 파일에 적절한 키가 포함되어 있는지 확인합니다.
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
출력에는 다음과 같이 전체 지문 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62가 포함되어야 합니다.
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
지문이 다르면 파일을 제거합니다.
안정적인 nginx 패키지를 위해 apt 리포지토리를 설정하려면 다음 명령을 실행합니다.
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
메인라인 nginx 패키지를 사용하려면 대신 다음 명령을 실행합니다.
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
배포판에서 제공하는 패키지보다 당사 패키지를 선호하도록 리포지토리 고정 설정:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
nginx를 설치하려면 다음 명령을 실행합니다.
sudo apt update
sudo apt install nginx
Ubuntu
다음 전제 조건을 설치합니다.
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
apt에서 패키지 신뢰성을 확인할 수 있도록 공식적인 nginx 서명 키를 가져옵니다. 다음과 같이 키를 가져옵니다.
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
다운로드한 파일에 적절한 키가 포함되어 있는지 확인합니다.
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
출력에는 다음과 같이 전체 지문 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62가 포함되어야 합니다.
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
지문이 다르면 파일을 제거합니다.
안정적인 nginx 패키지를 위해 apt 리포지토리를 설정하려면 다음 명령을 실행합니다.
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 패키지를 사용하려면 대신 다음 명령을 실행합니다.
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
배포판 제공 패키지보다 당사 패키지를 선호하려면 리포지고정 설정:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
nginx를 설치하려면 다음 명령을 실행합니다.
sudo apt update
sudo apt install nginx
SLES
다음 전제 조건을 설치합니다.
sudo zypper install curl ca-certificates gpg2
안정적인 nginx 패키지를 위해 zypper 리포지토리를 설정하려면 다음 명령을 실행합니다.
sudo zypper addrepo --gpgcheck --type yum --refresh --check \
'http://nginx.org/packages/sles/$releasever_major' nginx-stable
메인라인 nginx 패키지를 사용하려면 대신 다음 명령을 실행합니다.
sudo zypper addrepo --gpgcheck --type yum --refresh --check \
'http://nginx.org/packages/mainline/sles/$releasever_major' nginx-mainline
다음으로 zypper/rpm에서 패키지 신뢰성을 확인할 수 있도록 공식적인 nginx 서명 키를 가져옵니다. 다음과 같이 키를 가져옵니다.
curl -o /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key
다운로드한 파일에 적절한 키가 포함되어 있는지 확인합니다.
gpg --with-fingerprint /tmp/nginx_signing.key
출력에는 다음과 같이 전체 지문 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62가 포함되어야 합니다.
pub 2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
Key fingerprint = 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
uid nginx signing key <signing-key@nginx.com>
마지막으로 rpm 데이터베이스에 키를 가져옵니다.
sudo rpmkeys --import /tmp/nginx_signing.key
nginx를 설치하려면 다음 명령을 실행합니다.
sudo zypper install nginx
Alpine
다음 전제 조건을 설치합니다.
sudo apk add openssl curl ca-certificates
안정적인 nginx 패키지를 위해 apk 리포지토리를 설정하려면 다음 명령을 실행합니다.
printf "%s%s%s%s\n" \
"@nginx " \
"http://nginx.org/packages/alpine/v" \
`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
"/main" \
| sudo tee -a /etc/apk/repositories
메인라인 nginx 패키지를 사용하려면 대신 다음 명령을 실행합니다.
printf "%s%s%s%s\n" \
"@nginx " \
"http://nginx.org/packages/mainline/alpine/v" \
`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
"/main" \
| sudo tee -a /etc/apk/repositories
다음으로 apk에서 패키지 신뢰성을 확인할 수 있도록 공식적인 nginx 서명 키를 가져옵니다. 다음과 같이 키를 가져옵니다.
curl -o /tmp/nginx_signing.rsa.pub https://nginx.org/keys/nginx_signing.rsa.pub
다운로드한 파일에 적절한 키가 포함되어 있는지 확인합니다.
openssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -text -noout
출력에 다음 모듈이 포함되어야 합니다.
Public-Key: (2048 bit)
Modulus:
00:fe:14:f6:0a:1a:b8:86:19:fe:cd:ab:02:9f:58:
2f:37:70:15:74:d6:06:9b:81:55:90:99:96:cc:70:
5c:de:5b:e8:4c:b2:0c:47:5b:a8:a2:98:3d:11:b1:
f6:7d:a0:46:df:24:23:c6:d0:24:52:67:ba:69:ab:
9a:4a:6a:66:2c:db:e1:09:f1:0d:b2:b0:e1:47:1f:
0a:46:ac:0d:82:f3:3c:8d:02:ce:08:43:19:d9:64:
86:c4:4e:07:12:c0:5b:43:ba:7d:17:8a:a3:f0:3d:
98:32:b9:75:66:f4:f0:1b:2d:94:5b:7c:1c:e6:f3:
04:7f:dd:25:b2:82:a6:41:04:b7:50:93:94:c4:7c:
34:7e:12:7c:bf:33:54:55:47:8c:42:94:40:8e:34:
5f:54:04:1d:9e:8c:57:48:d4:b0:f8:e4:03:db:3f:
68:6c:37:fa:62:14:1c:94:d6:de:f2:2b:68:29:17:
24:6d:f7:b5:b3:18:79:fd:31:5e:7f:4c:be:c0:99:
13:cc:e2:97:2b:dc:96:9c:9a:d0:a7:c5:77:82:67:
c9:cb:a9:e7:68:4a:e1:c5:ba:1c:32:0e:79:40:6e:
ef:08:d7:a3:b9:5d:1a:df:ce:1a:c7:44:91:4c:d4:
99:c8:88:69:b3:66:2e:b3:06:f1:f4:22:d7:f2:5f:
ab:6d
Exponent: 65537 (0x10001)
마지막으로 키를 apk 신뢰할 수 있는 키 스토리지로 이동합니다.
sudo mv /tmp/nginx_signing.rsa.pub /etc/apk/keys/
nginx를 설치하려면 다음 명령을 실행합니다.
sudo apk add nginx@nginx
동적 모듈과 함께 패키지를 설치하는 경우 @nginx 태그도 지정해야 합니다.
sudo apk add nginx-module-image-filter@nginx nginx-module-njs@nginx
Amazon Linux
다음 전제 조건을 설치합니다.
sudo yum install yum-utils
yum 리포지토리를 설정하려면 다음 콘텐츠를 포함하여 /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
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/amzn2/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
기본적으로 안정적인 nginx 패키지용 리포지토리가 사용됩니다. 메인라인 nginx 패키지를 사용하려면 다음 명령을 실행합니다.
sudo yum-config-manager --enable nginx-mainline
nginx를 설치하려면 다음 명령을 실행합니다.
sudo yum install nginx
GPG 키를 승인하라는 메시지가 표시되면 지문이 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62와 일치하는지 확인하고 일치하면 승인합니다.
소스 패키지
패키징 소스는 패키징 소스 리포지토리에서 찾을 수 있습니다..
default 분기는 현재 시스템 버전용 패키징 소스를 포함하고 stable-* 분기는 안정적인 릴리스용 최신 소스를 포함합니다. 바이너리 패키지를 빌드하려면 Debian/Ubuntu의 debian/ 디렉터리, RHEL/CentOS/SLES/Amazon Linux의 rpm/SPECS/ 또는 Alpine의 alpine/에서 make를 실행합니다.
패키징 소스는 nginx에서 사용하는 동일한 2-clause BSD-like license 아래 배포됩니다.
동적 모듈
기본 nginx 패키지는 추가 종속성을 방지하기 위해 추가 라이브러리가 필요하지 않은 모든 모듈과 함께 빌드됩니다. 버전 1.9.11 이후 nginx는 동적 모듈을 지원하고 다음 모듈은 동적으로 빌드되고 별도의 패키지로 제공됩니다.
nginx-module-geoip
nginx-module-image-filter
nginx-module-njs
nginx-module-perl
nginx-module-xslt
서명
PGP 키와 패키지는 동일한 서버에 있으므로 동일하게 신뢰할 수 있습니다. 다운로드한 PGP 키의 신뢰성을 추가로 확인하는 것이 좋습니다. PGP에는 “Web of Trust” 개념이 있어서 키가 다른 사람의 키로 서명되면 또 다른 키로 서명되고 이런 식으로 계속 이어집니다. 대부분 임의의 키에서 사용자가 개인적으로 알고 신뢰하는 다른 사람의 키로의 체인이 형성될 수 있으므로 체인의 첫 번째 키의 신뢰성을 확인하십시오. 이 개념은 GPG Mini Howto에서 자세히 설명합니다. 키에는 충분한 서명이 있고 서명의 신뢰성은 상대적으로 확인하기 쉽습니다.