Web Server (Nginx)

0. 목표

  1. 여러대의 서버에서 서비스 하는 방법
  2. web server에서 HTML, CSS, JS 배포
  3. AWS ELB, Auto scaling group을 통한 다중 웹서버 환경 구축
  4. 운영 서버 아키텍처 알아보기 (서비리스, 마이크로, 모노)

1. 여러대의 서버에서 서비스 하는 방법

yeajunseok-web-deploy

  • index.HTML
  • page
    • album
      • index.HTML
    • signin
      • index.HTML
  • resources
    • CSS
    • js

2. Nginx HTTP 요청과 응답

webserver_2-1 webserver_2-2

  • 변경해야 할 점 webserver_2-3

  • Nginx 설정파일 수정

    ...
    server {
      server_name_;
      root  /usr/share/nginx/html/YJS-web-deploy;
      # nginx로 들어오는 http쵸정에 응답하기 위해 맨 처음으로 찾는 디렉토리이다.
    }
    
    location / {
      # location
      ## Nginx 에 요청된 URL별 특정 위체에 적용할 설정 그룹에 대한 정의 내용
      ## 여러 URL을 처리하기 위해 정규표현식을 사용하는 경우가 일반적임
    }
    
    location ~* / (album|signin){
      root /usr/share/nginx/html/YJS-web-deploy/page;
      # ~ / ~*
      ## 들어오는 URL을 정규표현식으로 처리를 위해 사용하는 옵션
      ## ~: 대소문자 구분 하여 적용
      ## ~*: 대소문자 구분 없이 적용
    
      # (album|signin)
      ## Nginx가 처리하는 URL이 album혹은 signin에 매칭되는 지 확인
      ## 해당 URL이 매칭되면 Nginx root 디렉토리를 해당 블럭에 적힌 디렉토리로 변경
    }
    ...
    
    • /etc/nginx에서 nginx.conf 수정 후 nginx reload
    • 해당 파일 수정을 통해 http://ec2-domin/album 으로 안전하게 들어올 수 있다.

3. Proxy_pass

  • 들어온 요청을 다른 웹 서버 또는 WAS로 전달 - reverse proxy
  • DB서버와 연결되 있는 WAS의 ip와 포트 번호를 감출 수 있음
  • Nginx 설정파일 수정

    ...
    location /api {
      Proxy_pass {ec2_private_dns/ip}:8080
    }
    ...
    

4. Load balancer

webserver_2-4
|동시 접속자 최과 된다면?|

webserver_2-5
|LB_서버 이중화|

webserver_2-6
|LB_트래픽 분산|

태그:

카테고리:

업데이트: