블로그 | NGINX

튜토리얼: AWS에서 NGINX 및 NGINX Plus를 웹 서버 및 역방향 프록시로 설정

NGINX-F5-수평-검정-유형-RGB의 일부
에이단 카슨 썸네일
에이단 카슨
2021년 11월 12일 게시

NGINX는 출시된 지 15년이 넘었지만 꾸준히 인기를 얻고 있으며 현재는 전 세계에서 가장 인기 있는 웹 서버로 , [ngx_snippet name='number-sites']개가 넘는 웹사이트를 지원합니다. 이 경우에는 대중의 추세를 따라 모든 웹 서비스 요구 사항에 NGINX를 사용하고 역방향 프록시 , 콘텐츠 캐시 , 부하 분산 장치 , API 게이트웨이 등의 기능을 활용하는 것이 현명하다고 생각합니다.

이 블로그 게시물에서는 개인 컴퓨터의 설정에 영향을 미치지 않는 사용하기 쉬운 설정을 통해 Amazon Web Services(AWS)의 Ubuntu 20.04에서 NGINX를 구동하는 방법을 안내합니다. 이 솔루션은 NGINXNGINX Plus (기업용 기능이 추가된 상용 지원 버전)를 모두 지원합니다.

여기에 제공된 단계를 완료하면 NGINX Core 교육( 강사 주도 또는 주문형 )을 계속 진행할 수 있습니다. 이 교육은 NGINX를 구성, 관리 및 관리하는 방법을 배우는 하루 종일 과정입니다. 이 과정은 또한 고급 주제에 대한 다른 강사 주도 및 자기 주도 과정에 대비할 수 있도록 준비시켜줍니다.

튜토리얼에는 다음 작업에 대한 지침이 포함되어 있습니다.

터미널에 접근하기

이 튜토리얼을 실행하려면 Amazon Elastic Compute Cloud (EC2) 인스턴스에 연결할 터미널이 필요합니다. Mac에는 터미널이 내장되어 있지만 Windows 사용자는 PuTTY나 이와 동등한 도구를 다운로드해야 합니다. NGINX 또는 NGINX Plus를 설정하고 웹 콘텐츠를 제공하기 위해 자체 로컬 터미널을 사용하는 것을 선호하는 경우 AWS 설정 으로 건너뛰세요.

MacOS에서 터미널에 접근하기

Mac에서는 내장된 터미널 도구를 사용해 이 튜토리얼의 모든 작업을 수행할 수 있습니다.

  1. 화면 상단 바의 오른쪽 끝에 있는 돋보기 아이콘을 클릭하세요.

  2. 팝업 상자에 terminal을 입력하고 Enter를 누릅니다. 별도의 터미널 창이 열립니다.

Windows에서 터미널에 액세스하기

Windows에는 터미널이 내장되어 있지 않으므로 인터넷에서 다운로드해야 합니다. AWS와 함께 전 세계적으로 사용되는 ssh 클라이언트인 PuTTY를 추천합니다.

  1. PUTTY 다운로드 페이지 에 접속합니다.

  2. 원하는 위치에 파일을 다운로드하여 설치한 후 열어보세요. 하지만 AWS 설정 의 단계를 완료하기 전까지는 실제 터미널에 액세스할 수 없습니다.

AWS 설정

이 튜토리얼에서는 Amazon Virtual Private Cloud (VPC)가 있고 대부분 계정에서 생성되는 기본 VPC 구성을 그대로 사용할 수 있다고 가정합니다. 이 섹션에서는 EC2 인스턴스를 생성하고 연결하여 AWS 배포를 설정합니다.

메모: EC2 인스턴스를 만드는 다음 절차와 스크린샷은 이 글을 쓸 당시에 검증되었지만, AWS에서 변경될 수 있습니다. 필요에 따라 지침을 수정하세요.

  1. AWS 홈페이지 에서 (AWS 관리) 콘솔에 로그인하거나, 필요한 경우 먼저 새 계정을 만드세요.

  2. 콘솔 제목 표시줄에서 서비스를 클릭한 다음 컴퓨팅 섹션에서 EC2를 클릭합니다.

    AWS '서비스' 페이지에서 'EC2' 선택을 보여주는 스크린샷

  3. 열리는 EC2 대시보드 페이지에서 인스턴스 시작 버튼을 클릭합니다.

  4. 1단계 페이지에서 Ubuntu Server 20.04 LTS(HVM), SSD 볼륨 유형 행의 선택 버튼을 클릭하고 기본 64비트(x86) 아키텍처 선택을 유지합니다.

    Amazon EC2 인스턴스 생성 마법사의 '1단계' 페이지 스크린샷

  5. 2단계 페이지에서 t2.micro 인스턴스 유형을 선택합니다. 이 글을 쓰는 시점에서는 무료 계층 적용으로 표시되어 있고 기본적으로 선택되어 있습니다. 다음을 클릭하세요. 인스턴스 세부정보 구성 버튼.

    Amazon EC2 인스턴스 생성 마법사의 '2단계' 페이지 스크린샷

  6. 3단계 페이지에서 사용하려는 VPC가 네트워크 필드에서 선택되었는지 확인하고, 공용 IP 자동 할당 필드가 기본 서브넷 사용 설정(활성화) 또는 활성화 로 설정되어 있는지 확인합니다. 나머지 설정은 기본값으로 두세요.

    Amazon EC2 인스턴스 생성 마법사의 '3단계' 페이지 스크린샷

  7. 6을 클릭하세요. 보안 그룹 구성 페이지 상단에.

  8. 6단계 페이지에서 다음 단계를 수행하여 들어오는 HTTP 및 HTTPS 트래픽을 허용합니다(기본적으로 EC2 인스턴스는 SSH 트래픽만 허용합니다).

    • 표 아래에 있는 규칙 추가 버튼을 클릭한 다음 유형 열의 드롭다운 메뉴에서 HTTP를 선택합니다. 이 튜토리얼의 목적상, 모든 IP 주소에서의 액세스를 허용합니다( 소스 열의 값은 모든 곳 0.0.0.0/0, ::/0 입니다). 운영 환경에서는 액세스를 제어하기 위해 보안 그룹을 사용해야 한다는 페이지의 경고를 따르는 것이 좋습니다.

    • HTTPS 에 대해 이전 단계를 반복합니다.

    • 페이지 하단의 검토 및 실행 버튼을 클릭하세요.

    Amazon EC2 인스턴스 생성 마법사의 '6단계' 페이지 스크린샷

  9. 7단계 페이지에서 하단의 실행 버튼을 클릭하세요.

  10. 팝업되는 상자에서 새로운 키 쌍을 만듭니다.

    • 위쪽 드롭다운 메뉴에서 새 키 쌍 만들기를 선택합니다.

    • 키 페어 유형을 선택하세요. 이 튜토리얼에서는 RSA를 선택합니다.

    • 키 쌍 이름 필드에 NGINX_key 와 같은 이름을 입력합니다.

    • 키 페어 다운로드 버튼을 클릭하세요.

    • 아래 애니메이션 스크린샷에서 볼 수 있듯이, 키 페어 다운로드 버튼이 체크 박스로 바뀌었습니다. 클릭하면 개인 키에 액세스할 수 있음을 나타냅니다.

    • 인스턴스 시작 버튼을 클릭합니다.

    Amazon EC2 '기존 키 쌍 선택 또는 새 키 쌍 생성' 팝업 창의 스크린샷

  11. 파일 관리자 유틸리티에서 다운로드한 .pem 파일(튜토리얼에서는 NGINX_key.pem )을 안전한 위치로 옮깁니다. 튜토리얼에서는 /Desktop/NGINX 디렉토리에 저장합니다.

  12. Windows 터미널을 사용하는 경우 AWS 지침 에 따라 PuTTYgen 유틸리티를 다운로드하고 .pem 파일을 .ppk 파일로 변환하세요.

  13. 시작 상태 페이지에서 하단의 인스턴스 보기 버튼을 클릭합니다.

  14. 열리는 인스턴스 페이지에서 새 인스턴스가 표에 나타납니다. 이름을 지정하세요:

    • 이름 열의 연필 아이콘을 클릭합니다.

    • 이름 편집 팝업 상자에 이름을 입력하고 저장 버튼을 클릭합니다.

    인스턴스 이름 편집을 보여주는 Amazon EC2 '인스턴스' 페이지의 스크린샷

  15. 화면 상단의 연결 버튼을 클릭하세요. 다음과 같은 창이 나타납니다. SSH 클라이언트 탭을 열고 지침에 따라 인스턴스에 연결합니다. Windows를 사용하는 경우 명령에서 .pem을 .ppk 로 바꾸세요.

    Amazon EC2 '인스턴스에 연결' 팝업 창의 스크린샷

NGINX 소프트웨어 설치

이제 AWS 환경이 설정되었으므로 NGINX Open Source 또는 NGINX Plus를 설치할 차례입니다. NGINX Plus는 30일 동안 무료로 체험할 수 있습니다. 두 옵션 모두 이 튜토리얼의 맥락에서 작동하지만, NGINX Plus 의 고급 기능을 더 자세히 알아보려면 무료 평가판을 요청하세요.

NGINX 오픈소스 설치

대부분의 Linux 배포판과 BSD 변형은 표준 패키지 저장소에서 NGINX 오픈 소스를 제공하지만, 일반적으로 최신 버전은 아닙니다. NGINX 오픈 소스를 nginx.org 에서 직접 다운로드하는 것을 권장합니다. Ubuntu 패키지 관리자( apt )에 NGINX 저장소를 추가하려면 몇 가지 추가 단계가 있습니다.

NGINX 오픈 소스를 설치하려면 다음 단계를 따르세요.

  1. 터미널에 접속하세요.

  2. NGINX 서명 키를 다운로드하세요:

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. 키를 추가합니다:

    $ sudo apt-key nginx_signing.key를 추가합니다.
  4. 디렉토리를 /etc/apt 로 변경합니다.

    $ cd /etc/apt
  5. sources.list 파일을 편집하여 마지막에 다음 텍스트를 추가합니다.

    deb http://nginx.org/packages/ubuntu 초점 nginx
    deb-src http://nginx.org/packages/ubuntu 초점 nginx

    메모: 각 줄의 초점 키워드는 Ubuntu 20.04에 해당합니다. 다른 버전의 Ubuntu를 사용하는 경우 릴리스 코드명의 첫 단어를 대체하세요(예: Ubuntu 18.04의 경우 bionic ).

  6. NGINX 소프트웨어 업데이트:

    $ sudo apt-get 업데이트
  7. NGINX 설치:

    $ sudo apt-get nginx 설치
  8. 메시지가 나타나면 Y를 입력하세요.

  9. NGINX 시작:

    $ sudo systemctl 시작 nginx.service
  10. 상태를 확인하세요:

    $ sudo systemctl 상태 nginx.service
  11. 계속해서 웹 페이지를 열어보세요 .

NGINX Plus 설치

  1. 아직 NGINX Plus가 없으시다면 30일 무료 체험판에 가입하세요 .

  2. 평가판 구독이 가능하다는 이메일 알림을 받으면 제공된 지침에 따라 보안 인증서, 개인 키, JWT를 다운로드한 다음 NGINX Plus를 설치하세요.

  3. 설치가 완료되고 NGINX Plus가 실행되면 웹 페이지 열기 로 계속하세요.

웹 페이지 열기

이제 NGINX 소프트웨어를 시작했으므로 사이트의 콘텐츠를 제공하도록 구성하기 전에 NGINX 및 NGINX Plus가 기본적으로 제공하는 웹 페이지를 살펴보세요. 다음 단계를 따르세요.

  1. 아직 EC2 대시보드에 있지 않다면 인스턴스 탭으로 이동합니다. (한 가지 방법은 콘솔 탐색 모음 상단에서 서비스를 클릭하고, 컴퓨팅 섹션에서 EC2를 클릭 하고, 왼쪽 탐색 열에서 인스턴스를 클릭 하는 것입니다.)

  2. 테이블에서 오른쪽으로 스크롤하여 공용 IPv4 주소 열에 인스턴스의 공용 IP 주소가 보이도록 합니다(스크린샷에서는 3.22.51.xxx입니다). 주소를 선택하여 붙여넣기 버퍼에 복사합니다.

    인스턴스의 '공용 IPv4 주소' 필드를 보여주는 Amazon EC2 '인스턴스' 페이지의 스크린샷

  3. 새 브라우저 탭을 열고 주소창에 주소를 붙여넣으세요. NGINX가 설치되어 실행 중이지만 아직 구성되지 않았음을 나타내는 기본적인 nginx에 오신 것을 환영합니다! 페이지가 나타납니다.

    환영 페이지는 NGINX 역방향 프록시 및 웹 서버가 작동 중임을 확인합니다.

샘플 파일 설정

NGINX 또는 NGINX Plus의 작동 버전이 설치되었으니 이제 제대로 활용해 보세요! 먼저 일부 파일과 디렉토리를 설정해 보겠습니다.

  1. 아직 홈 디렉토리가 없다면 홈 디렉토리로 변경하세요. 다음 지침에서는 /home/ubuntu 입니다.

  2. public_html 이라는 디렉토리를 만들고 여기로 이동합니다.

  3. public_html 디렉토리에 index.html 이라는 파일과 application1 이라는 디렉토리를 만듭니다.

  4. application1 디렉토리에서 app1.html 이라는 파일을 만들고 텍스트를 입력하세요.

  5. 홈 디렉토리로 돌아가세요.

  6. data 라는 디렉토리를 만듭니다.

  7. 데이터 디렉토리에 images 라는 디렉토리를 만듭니다.

페이지 및 이미지 제공

NGINX 또는 NGINX Plus의 첫 번째 사용 사례는 웹 페이지를 통해 사용자에게 페이지와 이미지를 제공하는 것입니다.

  1. 디렉토리를 /etc/nginx/conf.d 로 변경합니다.

  2. NGINX 또는 NGINX Plus가 기본 설정 파일로 사용하지 못하도록 하려면 default.conf를 default.conf.bak 로 이름을 바꾸세요.

  3. 이 구성을 사용하여 server1.conf 라는 파일을 만듭니다.

    서버 { 루트 /홈/우분투/public_html;
    
    위치 /application1 { }
    
    위치 /images { 
    루트 /홈/우분투/데이터; 
    }
    }

    지시문서: location , root , server

  4. 디렉토리를 ~/data/images 로 변경합니다.

  5. 제공하고 싶은 이미지를 찾아 디렉토리( ~/data/images )에 복사합니다. 예를 들어, 다음 명령은 NGINX 로고를 복사합니다.

    $ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
  6. NGINX 또는 NGINX Plus를 다시 로드하세요:

    $ sudo nginx -s 다시 로드
  7. 웹 브라우저에서 이 URL의 이미지를 요청합니다. 여기서 NGINX-server는 EC2 인스턴스의 공용 IP 주소입니다.

    https:// NGINX-서버 /images/NGINX-logo.png

  8. 또한 애플리케이션에 접속하여 다음과 같은 결과를 확인하세요.

    https:// NGINX-서버 /application1/app1.html

프록시 서버 설정

이제 작동하는 웹 서버가 있으므로 트래픽을 라우팅하도록 구성하는 방법을 알아볼 차례입니다. 이 기능을 사용하면 트래픽을 다른 서버로 전달할 수 있으며, 이는 부하 분산을 설정하기 위한 중요한 단계입니다. 다음 단계를 따르세요.

  1. ~/data 디렉토리에 server2 라는 디렉토리를 만듭니다.

  2. server2 디렉토리에 sampleApp 이라는 디렉토리를 만듭니다.

  3. sampleApp 디렉토리에서 index.html 이라는 이름의 파일을 만들고 텍스트를 입력합니다.

  4. 디렉토리를 /etc/nginx/conf.d 로 변경합니다.

  5. 이 구성을 사용하여 server2.conf 라는 파일을 만듭니다.

    서버 { listen 8080;
    root /home/ubuntu/data/server2;
    }

    지시문서: listen , root , server

  6. 다음과 같이 첫 번째 위치 블록에 proxy_pass 지시문을 추가하여 server1.conf를 수정합니다.

    서버 { 루트 /홈/우분투/public_html;
    
    위치 /application1 {
    proxy_pass http://localhost:8080/sampleApp;
    }
    
    위치 /images {
    루트 /홈/우분투/데이터;
    }
    }

    지시문서: location , proxy_pass , root , server

  7. NGINX 또는 NGINX Plus를 다시 로드하세요:

    $ sudo nginx -s 다시 로드
  8. 브라우저에서 다음 URL에 접속하여 페이지 및 이미지 제공 에서 접속했을 때와 비교하여 어떤 변화가 있었는지 살펴보세요.

    https:// NGINX-서버 /application1/index.html

그럼, 다 됐어요! 이제 NGINX를 실행하는 Ubuntu 인스턴스가 생겼으며, 프록시 서버로 실행할 준비가 되었습니다.

추가 사용 사례를 위해 AWS에 NGINX 및 NGINX Plus를 배포하는 방법에 대한 지침은 배포 가이드를 참조하세요.

결론

이 튜토리얼에서는 NGINX 또는 NGINX Plus를 설정하여 인터넷을 통해 파일과 이미지를 제공하고 역방향 프록시 역할을 하는 방법을 알아보았습니다. NGINX에 대해 더 자세히 알고 싶으시다면 NGINX Core 교육 과정( 강사 주도 또는 주문형 )을 제공합니다. 이 과정에서는 이 튜토리얼의 주제는 물론 부하 분산, 위치 기반 라우팅, 보안을 포함한 웹 서비스 및 애플리케이션 제공의 기본 사항을 다룹니다. 또한 nginx.org 의 설명서NGINX Plus 관리자 가이드를 확인해 보세요. 언급된 대로, 해당 문서는 NGINX Plus뿐 아니라 NGINX 오픈 소스에도 적용됩니다.


"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."