WSGI는 레임워크의 웹서버로, route web에서는 표준 인터페이스로 개발되었다. WSGI Server는 많은 request들을 다룰 수 있도록 설계되었다. Framework들은 스스로 수천개의 request들을 실행하고 최고의 방법으로 처리할 수 있도록 설계되어있지 않다. WSGI는 Python Web 개발 속도를 올려준다. WSGI는 너가 Stack Components를 유연하게 바꿀 수 있도록 도와준다.
uWSGI는 Hosting server에서 Full stack 개발이 가능하도록 하기 위해 개발되었다. API와 일관된 Configuration Setup은 다양한 언어와 프로토콜, 프로세스 매니저, 프록시 등을 다양하게 다룰 수 있도록 개발되었다.
Nginx를 역프록시로 사용할 것이기 때문에 더 좋은 옵션이 된다. 모든 모듈들이 하나의 서버에서 동작하기 때문에 네트워크 포트를 사용하는 대신 더욱 안전하고 성능좋은 유닉스소켓을 사용할 수 있다. 유닉스소켓은 HTTP 를 사용하지 않고, 다른 서버와 통신하기 위해 디자인된 바이너리 프로토콜인 uWSGI의 uwsgi 프로토콜을 사용한다. NginX는 기본적으로 uwsgi 프로토콜을 사용할수 있기 때문에 유닉스소켓을 사용하는 것이 가장 좋은 선택이라고 볼 수 있다. 또한 웹서버가 쓰기권한을 가질수 있도록 소켓의 권한을 변경하여야 한다.
CRUD(Creat, Read, Update, Delete), 인스타 그램은 CRUD이다. 사진을 Update, Read하고 댓글을 Create하거나 Delete한다. 블로그, 인스타그램, 유튜브 같이 CRUD를 위한 최선의 옵션이다. 이미 유저, 인증, 뷰, 템플릿, URL, Static Files 등 최적화되어있다. 장고는 거대한 상자와 같아서 안을 뒤지면서 필요없는건 버리고, 필요한 것만 남겨놓고 작업을 해야함.
웹을 만들때 생각해야할 것.
개발한 분산 검색엔진입니다. 설치와 서버 확장이 매우 편리하기 때문에 개발하고 있는 시스템에 검색 기능이 필요하다면 elasticsearch를 적용하는 것을 권장하고 싶습니다. 분산 시스템이기 때문에 검색 대상 용량이 증가했을 때 대응하기가 무척 수월하다는 것이 장점입니다.
Celery는 Python으로 작성된 비동기 작업 큐(Asynchronous task queue/job queue)입니다. 앞서 소개한 작업(Task)를 브로커(Broker, Redis를 사용)를 통해 전달하면 하나 이상의 워커(Worker)가 이를 처리하는 구조입니다. 포인트 적립-공유에 따른 분배처리, 포스팅 기능, 페이스북/트위터 공유등의 비동기 처리가 필요한 작업을 Celery에 위임하여 처리하고 있습니다.
curl -fsSL https://get.docker.com/ | sudo sh
sudo usermod -aG docker $USER
sudo reboot
git clone https://github.com/ysw0421/Django
docker build -t webapp .
docker run -d -p 3000:80 webapp
# Check your web localhost:3000
Content type
Image
Digest
Size
260.9 MB
Last updated
almost 8 years ago
docker pull ysw0421/django