파일 업로드 API가 호출될 때 413 Payload Too Large 오류가 발생해서 nginx 설정을 추가해야 했습니다.
ec2 접속해서 /etc/nginx/nginx.conf에 설정을 직접 추가했는데 어플리케이션을 재배포 할 때마다 설정된 게 초기화 되더라구요.
알고보니 beanstalk으로 배포한 서버는 nginx 설정을 따로 해야 하더라구요.
저희 서버 플랫폼은 Amazon Linux2입니다.(Linux1은 설정 방식이 다릅니다.)
1. 프로젝트에 .platform/nginx/conf.d/custom.conf 설정 파일 추가
# 프로젝트 구성
.
├── (생략)
├── module_01
│ ├── .platform
│ │ └── nginx
| | └── conf.d
│ │ └── custom.conf
│ ├── build.gradle
│ └── src
│ └── (생략)
custom.conf에 config 추가
client_max_body_size 100M;
2. codeBuild의 buildspec 수정
위와 같이 config 파일을 추가해서 배포했는데 반영이 안 되더라구요.
beanstalk 애플리케이션 버전에서 배포된 애플리케이션을 다운로드 받아서 zip 파일을 열어보니까 .platform 폴더가 포함되지 않았더라구요.
jar에 들어가야 되는 게 아니고 배포되는 zip에 .platform이 포함돼야 beanstalk이 인식합니다.
그래서 아래 코드도 효과 없음(❌)
bootJar {
from('.platform') {
into('.platform' )
}
}
buildspec에 추가할 것
.platform 폴더를 zip으로 만들어질 폴더에 복사합니다.
post_build:
commands:
- cp -r module_01/.platform module_01/build/libs/
사실 위까지 했는데도 포함 안 되길래 files에 아예 명시해줬더니 됐습니다.
artifacts:
files:
(생략)
secondary-artifacts:
module_name:
files:
- 'module_01-0.0.1-SNAPSHOT.jar'
- '.platform/nginx/conf.d/custom.conf'
base-directory: 'module_01/build/libs'
참고
https://jojoldu.tistory.com/541
AWS Beanstalk Linux2 에서 Nginx 설정이 안될때
기존에 AWS Beanstalk을 사용할 경우 아래와 같이 nginx.config 파일을 교체하라고 가이드를 받는데요. (AWS 공식 문서) 그래서 실제로 프로젝트 구조를 다음과 같이 잡고 배포를 진행합니다. 배포할때
jojoldu.tistory.com
'DevOps' 카테고리의 다른 글
[EC2/SCP] MAC -> EC2 SCP를 이용하여 파일/폴더 업로드 (0) | 2022.04.27 |
---|---|
[Docker] docker 명령어 모음 (0) | 2021.07.24 |
[Linux] vi 창에서 Ctrl+S 눌렀을 때 대처법 (0) | 2021.07.24 |