TIL 07.20 (Nginx -> docker -> load balancing)

박선우·2022년 7월 20일
0

Nginx

목록 보기
4/4
post-thumbnail

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
  • 마지막에 docker run해서 컨테이너 2개를 뛰운다.

이제는 로드 밸런싱 하기!!! 더간단하다

upstream 아무거나{
		server 127.0.0.1:포트;
        server 127.0.0.1:포트;
}

  • 위 사진처럼 밑에 빨간박스 추가하고 위에 빨간줄 보면서 설정해주기
sudo server nginx restart

  • 그럼 다음과 같이 트랙픽이 분산되서 들어오는 것을 볼 수 있다.!!
profile
코린이 열심히 배우자!

0개의 댓글