1. Nginx 역활
- Nginx는 웹서버입니다. 기본 웹서버 기능 이외에 proxy, reverse proxy 기능을 제공합니다.
proxy 기능을 활용하여 블루, 그린 내부 시스템과 연결 역활을 합니다.
- 웹 배포 포트
8084
- 블루 서비스 포트
8091
- 그린 서비스 포트
8092
2. 파일 구조
파일명 | 설명 |
Dockerfile_nginx | nginx 구동을 위한 Dockerfile |
docker-compose.nginx.yml | nginx docker-compose 설정 파일 |
nginx.conf | nginx 설정파일(Listen port, 블루/그린 서비스 주소 설정) |
run_nginx.sh | nginx 구동 스크립트 |
3. 설정
1) nginx.conf
-----------------------------------------------------------------------------------------------------------------
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream springproject{
least_conn;
server 127.0.0.1:8091 weight=10 max_fails=3 fail_timeout=10s;
server 127.0.0.1:8092 weight=10 max_fails=3 fail_timeout=10s;
}
server {
listen 8084 default_server;
listen [::]:8084 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://springproject;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
}
-----------------------------------------------------------------------------------------------------------------
nginx.conf 파일을 위와 같이 작성하고
파란색으로 작성된 부분은 블루 서비스의 주소를 적어줍니다. 녹색으로 된 부분은 그린 서비스의 주소를 적어 줍니다.
붉은 색은 Nginx의 Listen Port로 웹서비스를 할 포트를 적어 줍니다.
2) docker-compose.nginx.yml
-----------------------------------------------------------------------------------------------------------------
version: '3'
services:
nginx:
build:
context: .
dockerfile: Dockerfile_nginx
image: web_project/nginx:0.1
ports:
- 8084:8084
container_name: nginx_web_project
network_mode: "host"
-----------------------------------------------------------------------------------------------------------------
docker-compose.nginx.yml 파일을 위와 같이 작성하고
파란색으로 작성된 부분은 nginx.conf 파일에서 작성한 서버의 listen port와 일치하게 적습니다.
이미지명과 컨테이너명을 맞게 작성하고 저장합니다.
3) Dockerfile_nginx
-----------------------------------------------------------------------------------------------------------------
FROM nginx
COPY nginx /etc/nginx/nginx
VOLUME /var/log/nginx/log
EXPOSE 8084
CMD ["nginx", "-g", "daemon off;"]
-----------------------------------------------------------------------------------------------------------------
Dockerfile_nginx 파일을 위와 같이 작성하고
파란색으로 작성된 부분은 nginx.conf 파일에서 작성한 서버의 listen port와 일치하게 적습니다.
4) run_nginx.sh
-----------------------------------------------------------------------------------------------------------------
docker-compose -p nginx -f docker-compose.nginx.yml down
docker-compose -p nginx -f docker-compose.nginx.yml up -d
-----------------------------------------------------------------------------------------------------------------
docker-compose를 이용하여 nginx를 구동합니다.
파란색으로 작성된 부분은 프로젝트명으로 복수개의 프로젝트를 운영할 경우 각각 이름을 다르게 해서 관리해야 됩니다.
4. 실행 확인
1) 도커 확인
docker ps를 입력합니다.
NAMES에 nginx명이 보이는지 확인합니다.
2) 포트 확인
nginx 리스너가 정상적으로 작동하는지 확인합니다.
netstat -anp | grep 8084
위와 같이 나오면 정상적으로 실행이 되어 대기중인 상태입니다.
'DEV > CICD' 카테고리의 다른 글
무중단 배포(Blue-Green Deployment) - Tomcat 구동 (0) | 2021.01.01 |
---|---|
무중단 배포(Blue-Green Deployment) - 도커 설치 (0) | 2020.12.21 |
무중단 배포(Blue-Green Deployment) (0) | 2020.12.20 |
Nexus Repository 설정 (1) | 2020.12.14 |
오프라인에서 CICD 구성하기-4(Git 설치) (0) | 2020.08.20 |