상황 : 운영중인 서버에 포트를 열어서 다른 버전의 Django를 runserver로 올리고 운영중인 서버에는 영향이 없게 하고싶었다. (비추) (이렇게 하면 안됨)
운영중인 서버와 DB를 분리해야하기 때문에 새로운 Database를 만들어야한다.
사용중인 NCP의 Cloud DB for MySQL 서비스에는 DB root 계정이 존재하지않아서 콘솔에서 Database를 생성.
해당 DB 선택 -> DB 관리 → DB server 상세보기 → Database 생성
서버에 8080포트를 열어서 그 포트로 접속하면 다른 버전의 백엔드 API가 호출되게 하고싶으니까
NCP Server ACG 설정에서 Inbound 규칙에 허용 포트 8080 추가.
gunicorn 연결 안하고 그냥 runserver로 돌릴거기 때문에 서버 nginx 설정에서 8080 포트로 들어오면 runserver 기본 포트인 로컬:8000번으로 프록시 설정하기.
/etc/nginx/conf.d 에 추가
server {
listen 8080;
server_name 주소;
server_tokens off;
location / {
proxy_pass <http://127.0.0.1:8000>;
proxy_redirect off;
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-Host $server_name;
}
}
systemctl restart nginx 로 재시동
runserver을 유지시켜줘야하기 때문에
screen을 사용해서 runserver --noreload
noreload : 코드 변경을 감지해도 서버 자동 재시작 안하기
ctrl + a + d 로 screen을 나와서 screen -ls 로 확인. screen -r '세션명' 으로 다시 접속가능
여기까지 하고 왜 안되지 뻘짓했었는데,
Load Balancer에서 8080포트로 오는 연결을 막아놨었다.
NCP console -> Load Balancer에서 해당 서버 8080포트로 보내는 Target Group 추가
Load Balancer 리스너 설정에서 8080 포트 추가, Target Group 에 새로 만든 8080 Target Group 추가.
Django settings.py 에 CSRF_TRUSTED_ORIGINS와 ALLOW HOST 에 URL:8080 포트추가하는거 잊지 않기.
이렇게 하면 해당 서버 8080포트로 접속을 했을때 정상적으로 다른 버전의 Django 페이지로 연결 된다.
끗
'AWS' 카테고리의 다른 글
EC2 ubuntu ssh 비밀번호로 외부 접속 (0) | 2023.11.15 |
---|