먼저 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 계정을 만들어 했습니다.
'카카오테크 부트캠프' 카테고리의 다른 글
[KTB-Final] 젠킨스로 CI/CD 젠킨스 설정부터 Jenkinsfile작성 (0) | 2024.10.29 |
---|---|
[KTB-Final] 젠킨스 서버(private) 만들기 + nginx리버스 프록시로 연결 (0) | 2024.10.23 |
[KTB_Final] 인프라 비용계산 및 아키텍처 설계(+리버스 프록시 Nginx?) (2) | 2024.10.16 |
[KTB]젠킨스를 사용해 CI/CD - 인스턴스 용량 없음 이슈 (0) | 2024.09.04 |
[KTB]Dockerfile만들기(2) : SpringBoot와 도커를 활용해 배포 (0) | 2024.08.14 |