diff --git a/.ebextensions_dev/00-makeFiles.config b/.ebextensions_dev/00-makeFiles.config new file mode 100644 index 0000000..1751fa2 --- /dev/null +++ b/.ebextensions_dev/00-makeFiles.config @@ -0,0 +1,12 @@ +files: + "/sbin/appstart" : + mode: "000755" + owner: "webapp" + group: "webapp" + content: | + #!/usr/bin/env bash + JAR_PATH=/var/app/current/application.jar + + # run app + killall java + java -Dfile.encoding=UTF-8 -jar $JAR_PATH diff --git a/.ebextensions_dev/01-set-timezone.config b/.ebextensions_dev/01-set-timezone.config new file mode 100644 index 0000000..9eb3596 --- /dev/null +++ b/.ebextensions_dev/01-set-timezone.config @@ -0,0 +1,3 @@ +commands: + set_time_zone: + command: ln -f -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime diff --git a/.github/workflows/dev_deploy.yml b/.github/workflows/dev_deploy.yml index fd05246..f0e0299 100644 --- a/.github/workflows/dev_deploy.yml +++ b/.github/workflows/dev_deploy.yml @@ -50,12 +50,23 @@ jobs: mkdir -p deploy cp build/libs/*.jar deploy/application.jar cp Procfile deploy/Procfile - cp -r.ebextensions deploy/.ebextensions + cp -r .ebextensions_dev deploy/.ebextensions cp -r .platform deploy/.platform cd deploy && zip -r deploy.zip . + # AWS Elastic Beanstalk 배포 - name: BeanStalk Deploy uses: einaregilsson/beanstalk-deploy@v20 + with: + aws_access_key: ${{ secrets.AWS_ACTION_ACCESS_KEY_ID }} + aws_secret_key: ${{ secrets.AWS_ACTION_SECRET_ACCESS_KEY }} + region: 'ap-northeast-2' + application_name: 'infou-dev' + environment_name: 'Infou-dev-env' + version_label: github-action-${{ steps.current-time.outputs.formattedTime }} + deployment_package: 'deploy/deploy.zip' + wait_for_deployment: false + diff --git a/.platform/nginx.conf b/.platform/nginx.conf new file mode 100644 index 0000000..471a08e --- /dev/null +++ b/.platform/nginx.conf @@ -0,0 +1,63 @@ +user nginx; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; +worker_processes auto; +worker_rlimit_nofile 33282; + +events { + use epoll; + worker_connections 1024; + multi_accept on; +} + +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"; + } + + upstream springboot { + server 127.0.0.1:8080; + keepalive 1024; + } + + server { + listen 80 default_server; + listen [::]:80 default_server; + + location / { + proxy_pass http://springboot; + # CORS 관련 헤더 추가 + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type'; + 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/healthd.conf; + } +} diff --git a/.platform/nginx/client_max_body_size.conf b/.platform/nginx/client_max_body_size.conf new file mode 100644 index 0000000..3a56362 --- /dev/null +++ b/.platform/nginx/client_max_body_size.conf @@ -0,0 +1 @@ +client_max_body_size 200M; diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..d7df372 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: appstart diff --git a/build.gradle b/build.gradle index b29ba38..8bab31c 100644 --- a/build.gradle +++ b/build.gradle @@ -41,3 +41,7 @@ dependencies { tasks.named('test') { useJUnitPlatform() } + +jar { + enabled = false +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ffdc7f8..631792c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,6 @@ spring: username: ${DB_USERNAME} password: ${DB_PASSWORD} driver-class-name: ${DB_DRIVER} - jpa: hibernate: ddl-auto: update @@ -14,6 +13,12 @@ spring: show_sql: true format_sql: true +# multipart 파일 용량 늘려주는 부분 +servlet: + multipart: + max-file-size: 200MB + max-request-size: 300MB + logging: level: root: INFO