본문 바로가기

카카오테크 부트캠프

[KTB_Final]어플리케이션 테스트하기 - nginx와 Jenkins설정(+ RDS MySQL 2003 ERROR)

먼저 nginx는 리버스 프록시의 역할을 하기 때문에 관련 도커파일 뿐만 아니라 관련 설정을 따로 해주어야 합니다. 그래서 configure파일을 만들어 설정해줬습니다. 

 

# Dockerfile

# NGINX 이미지 사용
FROM nginx:alpine

# NGINX 설정 파일을 컨테이너 내부로 복사
COPY nginx.conf /etc/nginx/nginx.conf
COPY backup_nginx.conf /etc/nginx/conf.d/default.conf

# 80번 포트를 사용하여 NGINX 서버 실행
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

 

# nginx.conf

user nginx;
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    # 리버스 프록시 설정
    server {
        listen 80;
        server_name example.com;

        location /api/ {
            proxy_pass http://localhost:8081;
            proxy_set_header Host $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;

	    #리버스 프록시 성공 시 응답 메시지
	    add_header Content-Type text/html;
	    return 200 "This is a reverse proxy for port 8081(/api/)";
        }

        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $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;

	    add_header Content-Type text/html;
            return 200 "This is a reverse proxy for port 3000(/)";
        }
	location /test{
	    proxy_pass http://localhost:8082;
   	    proxy_set_header Host $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;
	    add_header Content-Type text/html;
            return 200 "This is a reverse proxy for port 8082(/test)";
    	}
    }
}

 

리버스 프록시 역할을 하기 때문에 관련 내용 설정해두었어요

 

#backup_nginx.conf

server {
    listen 80;
    server_name backup.example.com;

    location / {
        proxy_pass http://localhost:8083;
        proxy_set_header Host $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;
    }
}

backup_nginx코드인데 이건 사실 무슨 기능을 하는지 제대로는 모르겠어요. 서버에 문제가 생겼을때 8083으로 전환시켜서 하는 것.. 뭐 재해 복구 그런 것 같습니다. 

 

 

 


프로젝트 하다 백엔드 팀원분이 RDS를 만들어 달라고 하셔서 만드는데.... 8버전이면 상관없다고 하셔서 걍 최신으로 만들었다 그런데

,

.

.

..

 

 

난리난리 댕난리가 났다. 2003 오류 보이시나요.....? 이거 때문에 한시간 넘게 머리 굴려가며 클라우드 팀원분과 고민하다가 igw 서브넷 vpc 설정 다 봤는데 이상한게 없었어요!!!!! ㅜㅜ 그러다 다른 팀원분이.... 버전을 바꿨더니 해결 되었씁니다...

아무리 인바운드 아웃바운드 설정 다 해도 안되시는 분들은 버전 바꿔보세요..

 

RDS(Mysql) ERROR 2003 해결!!! 8.0.32 하니까 해결 되어써욯ㅎㅎㅎㅎㅎㅎ

 


 

AWS IAM을 쓰는법

권한문제도 있지만? 역추적하는 용도!! root로 하면 누가 제어했는지 알 수 없다.

팀프로젝트를 하며 오류나.. 뭐 그런것들 확인하기 위한 용도도 있고 비용을 지원받으며 팀계정을 사용해야해서IAM 계정을 만들어 했습니다.