콘텐츠로 이동

docker 사용해서 CI CD 구축하기

도커 허브 사용

[Spring] 깃허브 액션(github action)과 도커(docker)를 사용하여 스프링 부트 서버 CI/CD 구축하기 (tistory.com)


에러 로그 확인하기

Text Only
/etc/nginx  
sudo systemctl reload nginx  
Text Only
tail -f /var/log/nginx/beta.muk-da.com/error.log  
tail -f /var/log/nginx/error.log  
tail -f /var/log/nginx/access.log  

에러 해결 관련 북마크

Nginx 403 (13 Permission denied) 해결하기 (tistory.com)


플러터 Nginx 설정 추가하기

ec2 접속하기

Text Only
mssh -r ap-northeast-2 -d -u "dada-dorito" ec2-user@i-0b5cb525a46fb21c0  

nginx 설치 (리눅스 기준)

Text Only
sudo yum install nginx  
Text Only
aws s3 cp s3://beta.muk-da.com/web dada-mukda-front --recursive  

Nginx 설정하기

NGINX 다중 서버 upstream 설정 - 현구막 기술 블로그 (hyeon9mak.github.io)

  • /etc/nginx/proxy.conf
Text Only
proxy_redirect                  off;  
proxy_http_version              1.1;  
proxy_pass_request_headers      on;  
proxy_set_header                Upgrade                 $http_upgrade;  
proxy_set_header                Connection              "upgrade";  
proxy_set_header                Host                    $http_host;  
proxy_set_header                                X-Real-IP                               $remote_addr;  
proxy_set_header                                X-Forwarded-For                 $proxy_add_x_forwarded_for;  
proxy_set_header                                X-Forwarded-Proto               $scheme;  
# socket.io ping timeout 보다 커야 함. 25초 기본  
# self.sio = socketio(server, {  
#       pingInterval : 10000,  
#       pingTimeout  : 60000# });  
proxy_connect_timeout           30s;proxy_send_timeout              60s;  
proxy_read_timeout              60s;proxy_buffers                   32 4000K;  
  • /etc/nginx/nginx.conf

DEV-79 기본 세팅 백업

Text Only
# For more information on configuration, see:  
#   * Official English Documentation: http://nginx.org/en/docs/  
worker_processes auto;error_log  error.log notice;pid /run/nginx.pid;  
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.include /usr/share/nginx/modules/*.conf;  

include /etc/nginx/modules-enabled/*.conf;  

events {  
    worker_connections 1024;  
}  

http {  
        upstream mydomain {  
          least_conn;  
          server localhost:5601;  
        }  

  include /etc/nginx/conf.d/*.conf;  
  include /etc/nginx/sites-enabled/*;  
}  

mukda-beta-server

Text Only
    upstream mukda_beta_server {  
        least_conn;  
        server localhost:8080;  
    }  
  • sites-enabled, sites-available 폴더 생성
Text Only
$ mkdir /etc/nginx/sites-available  
$ mkdir /etc/nginx/sites-enabled  
  • /etc/nginx/sites-enabled
Text Only
$ sudo vim /etc/nginx/sites-enabled/sub.mydomain.co.kr  
# 아래 내용 저장  
server {  
        server_name sub.mydomain.co.kr;  
        access_log /var/log/nginx/sub.mydomain.co.kr/access.log;  
        error_log /var/log/nginx/sub.mydomain.co.kr/error.log;  
        include proxy.conf;  
        location / {  
                proxy_pass http://mukda-server/;  
                # root 어쩌고 가능  
        }  
}  
Text Only
$ sudo vim /etc/nginx/sites-enabled/sub.mydomain.co.kr  
server {  
        server_name api.beta.muk-da.com;  
        access_log /var/log/nginx/api.beta.muk-da.com/access.log;  
        error_log /var/log/nginx/api.beta.muk-da.com/error.log;  
        include proxy.conf;  
        location / {  
                proxy_pass http://mukda-beta-server/;  
        }  
}  
  • etc/nginx/sites-available
Text Only
$ sudo vim /etc/nginx/sites-available/sub.mydomain.co.kr  
server {  
        server_name sub.mydomain.co.kr;  
        access_log /var/log/nginx/sub.mydomain.co.kr/access.log;  
        error_log /var/log/nginx/sub.mydomain.co.kr/error.log;  
        include proxy.conf;  
        location / {  
                proxy_pass http://mydomain/;  
        }  
}  
Text Only
$ sudo vim /etc/nginx/sites-available/api.beta.muk-da.com  
server {  
        server_name api.beta.muk-da.com;  
        access_log /var/log/nginx/api.beta.muk-da.com/access.log;  
        error_log /var/log/nginx/api.beta.muk-da.com/error.log;  
        include proxy.conf;  
        location / {  
                proxy_pass http://mukda-beta-server/;  
        }  
}  
  • /etc/nginx/proxy.conf
Text Only
$ vim /etc/nginx/proxy.conf  
# 아래 내용 저장  
proxy_redirect                  off;  
proxy_http_version              1.1;  
proxy_pass_request_headers      on;  
proxy_set_header                Upgrade                 $http_upgrade;  
proxy_set_header                Connection              "upgrade";  
proxy_set_header                Host                    $http_host;  
proxy_set_header                                X-Real-IP                       $remote_addr;  
proxy_set_header                                X-Forwarded-For                 $proxy_add_x_forwarded_for;  
proxy_set_header                                X-Forwarded-Proto               $scheme;  
# socket.io ping timeout 보다 커야 함. 25초 기본  
# self.sio = socketio(server, {  
#       pingInterval : 10000,  
#       pingTimeout  : 60000# });  
proxy_connect_timeout           30s;proxy_send_timeout              60s;  
proxy_read_timeout              60s;proxy_buffers                   32 4000K;  
  • 로그 파일 저장할 디렉터리 생성
Text Only
mkdir /var/log/nginx/sub.mydomain.co.kr  
  • 구동 테스트
Text Only
$ nginx -t  
  • 설정 적용
Text Only
$ systemctl reload nginx.service  
Text Only
flutter build web --release --base-href="/"  
Text Only
댓글  
Text Only
include /etc/nginx/modules-enabled/*.conf;  

events {  
    worker_connections 1024;  
}  

http {  
  server {  
    listen 80;  
    server_name localhost;  

    location / {  
        root /usr/share/nginx/html;  
        index index.html index.htm;  
        try_files $uri $uri/ /index.html;  
    }  
  }  
}  

[Flutter web] 배포하기 (nginx 설정+EC2 인스턴스 생성) (velog.io) 참고
Easily Hosting Your Flutter Web App on a VPS Using Nginx | by Yawar Osman | Medium


마지막 업데이트 : 2025년 5월 8일
작성일 : 2025년 5월 8일