메뉴
AWS Elastic Beanstalk
개발자 안내서 (API 버전 2010-12-01)

역방향 프록시 구성

Elastic Beanstalk는 nginx를 역방향 프록시로 사용하여 애플리케이션을 포트 80의 Elastic Load Balancing 로드 밸런서에 매핑합니다. Elastic Beanstalk는 확장하거나 자체 구성으로 완전히 재정의할 수 있는 기본 nginx 구성을 제공합니다.

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

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | `-- myconf.conf `-- web.jar

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

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- web.jar

Elastic Beanstalk의 nginx 구성을 재정의하는 경우 nginx.conf에 다음 줄을 추가하여 고급 상태 보고 및 모니터링, 자동 애플리케이션 매핑 및 정적 파일에 대한 Elastic Beanstalk의 구성을 가져옵니다.

include conf.d/elasticbeanstalk/*.conf;

Scorekeep 샘플 애플리케이션의 다음과 같은 구성 예시는 Elastic Beanstalk의 기본 구성을 재정의하여 Java SE 플랫폼이 애플리케이션 소스 코드를 복사하는 /var/app/current의 하위 디렉터리 public에 있는 정적 웹 애플리케이션을 제공합니다. /api 로케이션은 트래픽을 /api/ 아래의 경로를 거쳐 포트 5000에서 수신 중인 Spring 애플리케이션으로 전달합니다. 다른 모든 트래픽은 루트 경로에 있는 웹 앱을 통해 제공됩니다.

.ebextensions/nginx/nginx.conf

user nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 33282; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include conf.d/*.conf; map $http_upgrade $connection_upgrade { default "upgrade"; } server { listen 80 default_server; root /var/app/current/public; location / { } location /api { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/access.log main; client_header_timeout 60; client_body_timeout 60; keepalive_timeout 60; gzip off; gzip_comp_level 4; # Include the Elastic Beanstalk generated locations include conf.d/elasticbeanstalk/01_static.conf; include conf.d/elasticbeanstalk/healthd.conf; } }