Web Server (Nginx)
0. 목표
- 여러대의 서버에서 서비스 하는 방법
- web server에서 HTML, CSS, JS 배포
- AWS ELB, Auto scaling group을 통한 다중 웹서버 환경 구축
- 운영 서버 아키텍처 알아보기 (서비리스, 마이크로, 모노)
1. 여러대의 서버에서 서비스 하는 방법
yeajunseok-web-deploy
- index.HTML
- page
- album
- index.HTML
- signin
- index.HTML
- album
- resources
- CSS
- js
2. Nginx HTTP 요청과 응답
-
변경해야 할 점
-
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
|동시 접속자 최과 된다면?|
|LB_서버 이중화|
|LB_트래픽 분산|