컴퓨터 프로그래밍/Memo

[Memo] NGINX 서버 접속해서 vim 설치하고 Blue/Green 방식의 무중단 배포를 위해 파일 생성

한33 2024. 11. 10. 18:29

 

기존에 인스턴스의 SSH 에 접속해서 Docker 을 설치한 후 NGINX 이미지를 다운받아 컨테이너로 실행시켰다.

sudo su 명령어를 통해 관리자 권한으로 명령어를 검색했다.

 

NGINX 서버로 접속

docker exec -it nginxserver bash

 

 

nginxserver container 로 들어가 접근했다.

ls 를 입력해서 파일들을 확인

 

cd etc/ Tab 을 두번 누르면 안에 있는 파일들을 볼 수 있다.

 

cd etc/ nginx/conf.d

 

vim default.conf 명령어를 입력해서 default.conf 파일 수정을 시도하면

vim: command not found 문구가 뜬다.

 

docker container 는 vim editor 가 설치되어있지 않기 때문이다.


VIM 설치

 

apt-get update

 

apt-get install vim

 

vim 설치 완료

 

vim d 까지 입력하고 Tab 키를 누르면 자동완성

 

vim default.conf

 

 

 

 

입력모드 i or a 를 입력하면 편집모드

esc 누르면 풀리고

d 삭제모드

default.conf 에서 나가고 싶으면 :q

:q! 강제나가기

:w 저장

:wq 저장하고 나가기

esc 누른 상태에서 u 를 누르면 뒤로 이동함

 

 

제일 상단에 위와 같이 인스턴스 프라이빗 IP 주소와 함께 입력

 

로드밸런싱을 하려면 여기에 포트를 추가로 입력하면 됨

 

저장된 환경변수 값을 가져오고 세팅하는 것

 

 

include 이용해서 해당 위치에 파일 하나 만들어줌

거기에 service url 이라는 환경변수를 가지고 값을 넣어줄거임

 

blue 면 http://blue 로 바뀜

그럼 blue 에 해당하는 ip 주소를 가져오고

green 이면 green 에 해당하는 녀석으로 가져옴

그래서 유동적으로 service_url 변수를 만든거고 이 변수에 대한 값은 위 파일 위치에 넣어둔다는 말임

 

:wq 로 저장하고 나감

 

vim service-env.inc

해당 파일 만들고 

 

set $service_url green;

:wq

 

cat service-env.inc

 

cat default.conf

 

 

include 를 통해서 service-env 파일을 가져오고

그럼 green 인 걸 읽어서 $service_url 에 green 이 들어가게 됨.

 

탄력적 ip 에 접속하면 ubuntu 안에 있는 nginx 서버로 접속을 함

그럼 proxy pass 를 통해서 한 번 거치게 되는데 green 일때는 8081 한 곳으로,

blue 일때는 다른 포트 8080 로 이동시킬것이다.

 

무중단 배포를 하기 위함이다.

 

8080이 실행되고 있다가 프로그램을 수정하거나 기능을 추가할 때 서버가 중단되었다가 켜진다.

 

예를 들어서 8080 blue 서버에서 로그인 기능을 추가하고자한다.

8081 green 에 로그인 기능을 추가한 걸 업데이트하고 정상적으로 동작하면

blue 로 가던걸 green 으로 가게 한다.

 

그럼 blue 가 연결이 끊길것이고 그 때 서버를 업데이트.

이후 다시 blue   로 연결을 시켜서 무중단 배포가 가능해진다.