현재 회사에서는 Spring Boot + AWS Beanstalk
조합으로 서비스를 운영하고 있다. 빈즈톡을 이용하여 로드밸런싱 처리를 할 때 nginx 를 사용하고자 하는 경우 빈즈톡에서 사용하는 인스턴스 내에서 nginx 설정을 변경해도 반영되지 않는 문제가 발생한다.
AWS 의 개발가이드가 완전히 한국어화가 되지 않았기 때문에 찾아보기도 이해하기도 쉽지 않다. |
이에 프로젝트 내에 빈즈톡과 관련된 설정파일을 두어 배포시 빈즈톡 내에 위치한 nginx 설정 파일 /etc/nginx/conf.d
에 위치하도록 할 수 있다.
적용방법
프로젝트 내에 aws 설정파일(
.conf
) 를 둘 디렉토리를 지정하라.ex)
$ mkdir boot-spring-boot/aws
boot-spring-boot/aws
하위에.ebextensions/nginx/conf.d/elasticbeanstalk
디렉토리를 생성한다.ex)
$ mkdir -p boot-spring-boot/aws/.ebextensions/nginx/conf.d/elasticbeanstalk
엘라스틱 빈즈톡의 기본 nginx 를 확장하기 위해서는 .ebextensions/nginx/conf.d/
폴더에 .conf
설정파일을 추가하면 된다. 그러면 자동으로 엘라스틱 빈즈톡의 nginx 구성에 .ebextensions/nginx/conf.d/
에 있는 .conf
파일들이 추가된다.
~/workspace/boot-spring-boot/aws/
`-- .ebextensions
`-- nginx
`-- conf.d
|-- elasticbeanstalk
| `-- 00_server.conf
`-- boot-spring-boot.conf
conf.d
폴더에 있는 .conf
파일들은 기본 구성의 http
블럭에 포함되며, conf.d/elasticbeanstalk
폴더에 있는 파일의 내용은 http
블록 내에 server
블록에 포함된다.
엘라스틱 빈즈톡의 기본 nginx 구성을 완전히 덮어쓰기 위해서는
|
nginx 에서 파일업로드 사이즈를 10M로 올려보자.
프로젝트 내에
aws/.ebextensions/nginx/conf.d/elasticbeanstalk
폴더를 생성00_server.conf
파일 생성00_server.conf
내에client_max_body_size 10M;
를 추가한다.스프링 부트 패키징 시
.ebextensions/nginx/conf.d/elasticbeanstalk
폴더가 포함되어 배포되도록 만든다.
|