이번 강의에는 로드밸런스를 통하여 배포시에 겪는 문제를 해결하기 위해서 Nginx를 알아보는 시간입니다.
로드밸런스에 100개의 EC2가 있다면 각각의 인스턴스에 퍼티를 통해서 들어간후 런서버 커맨드 입력을 100번을 해야합니다. 파일 복제나 이런부분은 이미지 스크린샷을 찍어서 할수 있지만 배포과정에서 포트번호를 적는것은 사람의 일입니다.
이런 문제를 해결하기 위해서 Nginx를 사용해보겠습니다.
Nginx란?
더 작은 자원으로 빠르게
Nginx는 트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반 구조의 웹서버이다.
기존에는 거의 Apache를 웹서버로 사용했다. Apache는 다양한 기능과 서드파티 확장 기능 등 어떠한 웹 애플리케이션에도 적용할 수 있는 웹서버였지만 클라이언트 접속 당 CPU와 메모리 사용량이 증가함으로써 확장성이 떨어진다는 단점이 있었다.
그래서 대량의 클라 인터를 관리하기 위한 웹서버가 필요시 되었고, 그래서 나온 것이 nginx였다.
nginx는 event 기반으로 동작하기 때문에 apache와 같이 각각의 웹페이지 요청을 처리 가히 위해 새로운 process or thread를 생성하지 않는다고 한다. 그렇기 때문에 단일 서버에서도 수만 개의 동시 연결을 처리할 수 있다.
현재 nginx는 분산 메모리에 객체 캐시 시스템이 추가되었고, 로드밸런싱을 위한 reverse proxy 등을 지원한다.
엔진x와 장고파일을 배포를 하면 자동으로 배포가 가능할수 있습니다.
웹서버를 치면 Nginx와 아파치와 가장 많이 언급이 됩니다.
sudo apt update
sudo apt-get install python3-pip
sudo pip3 install gunicorn
sudo apt-get install supervisor
sudo apt-get install nginx
sudo pip3 install django
django-admin startproject django_nginx
cd django_nginx
vi django_nginx/settings.py
[program:gunicorn]
directory=/home/ubuntu/django_nginx
command=/usr/local/bin/gunicorn --workers 3 --bind unix: /home/ubuntu/django_nginx/app.sock django_nginx.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/logs/gunicorn.err.log
stdout_logfile=/logs/gunicorn.out.log
python3 manage.py runserver 0.0.0.0:8000
cd /etc/supervisor/conf.d/
sudo touch django.conf
sudo vi django.conf
server{
listen 80;
server_name *.compute.amazoneaws.com;
location /{
include proxy_params;
proxy_pass http://unix:/home/ubuntu/django_nginx/app
}
}
sudo mkdir /logs
sudo supervisorctl reread
sudo supervisorctl update
cd /etc/nginx/
cd slites-available
sudo touch django.conf
sudo vi django.conf
sudo in django.conf/etc/nginx/sites-enabled/
sudo service nginx restart
위와 같이 설정을 해준다음 인스턴스의 이미지를 복제하고 실행하면 설정없이 서버를 실행 시킬수 있다.
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#한번에끝내는AWS인프라구축과DevOps운영초격차패키지Online
https://bit.ly/3FVdhDa
<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
'DEVOPS' 카테고리의 다른 글
패스트캠퍼스 챌린지 30일차[Docker] (0) | 2021.11.30 |
---|---|
패스트캠퍼스 챌린지 29일차[오토스케일링] (0) | 2021.11.29 |
패스트캠퍼스 챌린지 27일차[cloudfront 설정하기] (0) | 2021.11.27 |
패스트캠퍼스 챌린지 26일차[cloudfront,CDN의 원리] (0) | 2021.11.26 |
패스트캠퍼스 챌린지 25일차[Route53 도메인등록] (0) | 2021.11.25 |