Nginx -> docker -> load balancing 하기 로그인 API 수정
우리는 github action을 통해 CD를 구축했으니 docker컨테이너 두개를 띄운다.
load balancing을 통해 두개의 컨테이너에 요청이 나누워서 들어오는지 확인
name: ci-cd-pipeline
on:
pull_request:
branches:
- dev
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_NAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ secrets.DOCKER_NAME }}/paper:test
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
cd-pipeline:
needs: build-image
name: continuos deploy
runs-on: ubuntu-latest
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
cd /home/ubuntu/
docker rm -f $(docker ps -aq) && docker image rm -f $(docker image ls -q)
docker pull ${{ secrets.DOCKER_NAME }}/paper:test && docker run --env-file /home/ubuntu/.env --name server1 -d -i -p 8000:8000 ${{ secrets.DOCKER_NAME }}/paper:test && docker run --env-file /home/ubuntu/.env --name server2 -d -i -p 8001:8000 ${{ secrets.DOCKER_NAME }}/paper:test
이제는 로드 밸런싱 하기!!! 더간단하다
upstream 아무거나{
server 127.0.0.1:포트;
server 127.0.0.1:포트;
}
- 위 사진처럼 밑에 빨간박스 추가하고 위에 빨간줄 보면서 설정해주기
sudo server nginx restart