Tomcat 환경의 프록시 서버 구성 - AWS Elastic Beanstalk

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Tomcat 환경의 프록시 서버 구성

Tomcat 플랫폼은 nginx(기본값) 또는 Apache HTTP Server를 역방향 프록시로 사용하여 인스턴스에서 포트 80의 요청을 포트 8080에서 수신 중인 Tomcat 웹 컨테이너로 전달합니다. Elastic Beanstalk는 확장하거나 자체 구성으로 완전히 재정의할 수 있는 기본 프록시 구성을 제공합니다.

플랫폼 버전에서 프록시 서버 구성

모든 AL2023/AL2 플랫폼은 균일한 프록시 구성 기능을 지원합니다. AL2023/AL2를 실행하는 플랫폼 버전에서 프록시 서버를 구성하는 방법에 대한 자세한 내용을 보려면 Elastic Beanstalk Linux 플랫폼 확장에서 역방향 프록시 구성 섹션을 확장하세요.

Elastic Beanstalk Tomcat 환경에서 Amazon Linux AMI 플랫폼 버전(이전 Amazon Linux 2)을 사용하는 경우 여기의 추가 정보를 읽어 보십시오.

주의
  • 이 주제의 정보는 Amazon Linux AMI(AL1) 기반 플랫폼 브랜치에만 적용됩니다. AL2023/AL2 플랫폼 브랜치는 이전 Amazon Linux AMI(AL1) 플랫폼 버전과 호환되지 않으며 다른 구성 설정이 필요합니다.

  • 2022년 7월 18일 Elastic Beanstalk는 Amazon Linux AMI(AL1) 에 기반한 모든 플랫폼 브랜치의 상태를 사용 중지로 설정했습니다. 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션을(를) 참조하세요.

Amazon Linux AMI(이전 Amazon Linux 2)에 기반한 Tomcat 플랫폼 버전은 기본적으로 프록시에 Apache 2.4를 사용합니다. 소스 코드에 구성 파일을 포함시켜 Apache 2.2 또는 nginx를 사용하도록 선택할 수 있습니다. 다음 예제는 nginx를 사용하도록 Elastic Beanstalk를 구성합니다.

예 .ebextensions/nginx-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: nginx

Apache 2.2용으로 애플리케이션을 개발한 경우 이 단원에서 Apache 2.4로 마이그레이션하는 방법을 참조하십시오.

2018년 5월 24일자 Tomcat 플랫폼 업데이트 기반 Java와 함께 출시된 Tomcat 플랫폼 버전 3.0.0 구성부터는 Apache 2.4가 Tomcat 플랫폼의 기본 프록시입니다. Apache 2.4 .conf 파일은 대부분 Apache 2.2 파일과 호환되지만 완전히 호환되지는 않습니다. Elastic Beanstalk에는 Apache 각 버전과 올바르게 상호 작용하는 기본 .conf 파일이 포함되어 있습니다. 애플리케이션이 Apache의 구성을 사용자 지정하지 않는 경우 기본 Apache 구성 확장 및 재정의 — Amazon Linux AMI (AL1)에서 설명한 대로 문제 없이 Apache 2.4로 마이그레이션되어야 합니다.

애플리케이션이 Apache의 구성을 확장하거나 재정의하는 경우 Apache 2.4로 마이그레이션하기 위해 몇 가지 변경을 해야 할 수 있습니다. 자세한 내용은 Apache Software Foundation 사이트에서 2.2에서 2.4로 업그레이드를 참조하십시오. Apache 2.4로 마이그레이션하기 전까지 임시 수단으로 소스 코드에 다음 구성 파일을 포함시켜 애플리케이션에 Apache 2.2를 사용하도록 선택할 수 있습니다.

예 .ebextensions/apache-legacy-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache/2.2

빠른 해결을 위해 Elastic Beanstalk 콘솔에서 프록시 서버를 선택할 수도 있습니다.

Elastic Beanstalk 콘솔에서 Tomcat 환경의 프록시를 선택하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 업데이트, 모니터링 및 로깅 구성 범주에서 편집을 선택합니다.

  5. 프록시 서버에서 Apache 2.2 (deprecated)를 선택합니다.

  6. 변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.

Elastic Beanstalk 콘솔의 소프트웨어 구성 범주에서 Tomcat 환경의 프록시 선택

추가 구성 파일을 사용하여 Elastic Beanstalk 기본 Apache 구성을 확장할 수 있습니다. 또는 Elastic Beanstalk 기본 Apache 구성을 완전히 재정의할 수 있습니다.

참고

Elastic Beanstalk의 기본 Apache 구성을 확장하려면 애플리케이션 소스 번들의 .conf라는 폴더에 .ebextensions/httpd/conf.d 구성 파일을 추가합니다. Elastic Beanstalk의 Apache 구성에는 이 폴더의 .conf 파일이 자동으로 포함됩니다.

~/workspace/my-app/ |-- .ebextensions | -- httpd | -- conf.d | -- myconf.conf | -- ssl.conf -- index.jsp

예를 들어, 다음 Apache 2.4 구성은 포트 5000에 리스너를 추가합니다.

예 .ebextensions/httpd/conf.d/port5000.conf
listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Elastic Beanstalk의 기본 Apache 구성을 완전히 재정의하려면 .ebextensions/httpd/conf/httpd.conf의 소스 번들에 구성을 포함시킵니다.

~/workspace/my-app/ |-- .ebextensions | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp

Elastic Beanstalk의 Apache 구성을 재정의하는 경우 httpd.conf에 다음 줄을 추가하여 향상된 상태 보고 및 모니터링, 응답 압축 및 정적 파일에 대한 Elastic Beanstalk 구성을 가져옵니다.

IncludeOptional conf.d/*.conf IncludeOptional conf.d/elasticbeanstalk/*.conf

환경에서 Apache 2.2를 프록시로 사용하는 경우 IncludeOptional 명령을 Include로 바꾸십시오. 두 버전의 Apache에서 이러한 두 가지 명령의 동작에 대한 자세한 내용은 Apache 2.4의 Include, Apache 2.4의 IncludeOptional, Apache 2.2의 Include를 참조하십시오.

참고

포트 80의 기본 리스너를 재정의하려면 00_application.conf에서 .ebextensions/httpd/conf.d/elasticbeanstalk/ 파일을 포함해 Elastic Beanstalk의 구성을 덮어씁니다.

예제를 보려면 /etc/httpd/conf/httpd.conf에서 환경의 인스턴스에 대한 Elastic Beanstalk의 기본 구성 파일을 살펴보십시오. 소스 번들 내 .ebextensions/httpd 폴더의 모든 파일은 배포 중 /etc/httpd로 복사됩니다.

Elastic Beanstalk의 기본 nginx 구성을 확장하려면 애플리케이션 소스 번들의 .conf라는 폴더에 .ebextensions/nginx/conf.d/ 구성 파일을 추가합니다. Elastic Beanstalk nginx 구성에는 이 폴더의 .conf 파일이 자동으로 포함됩니다.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | |-- elasticbeanstalk | | `-- my-server-conf.conf | `-- my-http-conf.conf `-- index.jsp

conf.d 폴더에 있는 확장명이 .conf인 파일은 기본 구성의 http 블록에 포함됩니다. conf.d/elasticbeanstalk 폴더의 파일은 server 블록 내 http 블록에 포함됩니다.

Elastic Beanstalk의 기본 nginx 구성을 완전히 재정의하려면 .ebextensions/nginx/nginx.conf의 소스 번들에 구성을 포함시킵니다.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp
주의
  • Elastic Beanstalk nginx 구성을 재정의하는 경우 구성의 server 블록에 다음 줄을 추가하여 포트 80 리스너, 응답 압축 및 정적 파일에 대한 Elastic Beanstalk 구성을 가져옵니다.

    include conf.d/elasticbeanstalk/*.conf;
  • 포트 80의 기본 리스너를 재정의하려면 00_application.conf에서 .ebextensions/nginx/conf.d/elasticbeanstalk/ 파일을 포함해 Elastic Beanstalk의 구성을 덮어씁니다.

  • 또한 구성의 http 블록에 다음 줄을 포함하여 향상된 상태 보고 및 모니터링 및 로깅에 대한 Elastic Beanstalk 구성을 가져옵니다.

    include conf.d/*.conf;

예제를 보려면 /etc/nginx/nginx.conf에서 환경의 인스턴스에 대한 Elastic Beanstalk의 기본 구성 파일을 살펴보십시오. 소스 번들 내 .ebextensions/nginx 폴더의 모든 파일은 배포 중 /etc/nginx로 복사됩니다.