서버 개발환경 구성 정리

atesi·2022년 5월 15일
0

SERVER

목록 보기
2/2

들어가기

AWS EC2 우분투 인스턴스를 만들고, Django를 설치하고 git과 연동하여 로컬에서 개발한 내용을 aws에 적용했다. 하지만 runserver는 개발용으로 Django 프레임워크를 실행하는 것이기 때문에 실제 서비스에서는 사용하지 않는 명령어. 그 앞단에 진정한 웹서버를 사용해야 하고, 웹서버와 Django 사이에 인터페이스도 있어야 한다. 웹서버와 Django 사이에 인터페이스를 세팅해보고, Nginx - uWSGI - DjangoDocker로 구동해 보았다. 각각 무슨일을 하는지 알아본다.

전체적인 구조 정리

Django와 클라이언트 사이에는 여러 단계들이 있다.

웹 클라이언트는 Django 서버로 API를 호출하는 앱이나 웹이라고 보자.

클라이언트 옆에는 웹서버(Web Server)가 있다. 클라이언트로부터 요청(request)을 받아 뒤에 웹 어플리케이션으로 전달하고, 그에 대한 응답(respone)을 다시 클라이언트로 전달하는 역할이다.

웹서버와 WSGI사이에 소켓(Socket)이 있는데 웹서버와 WSGI 사이에 데이터를 주고받기 위한 인터페이스로 사용된다. 소켓은 네트워크를 사용한 HTTP 소켓이 될 수도 있고, 파일을 사용한 소켓(Linux 전용)이 될 수도 있다.

웹서버 옆에 있는 것이 WSGI이다. WSGI는 Web Server Gateway Interface 약자이다. WSGI는 웹서버와 Django 사이에 통신을 담당한다. WSGI는 개념이고 그것을 구현한 것 중 하나가 uWSGI이다.

그 뒤는 Django와 Python Function이 있다.


출처
https://uwsgi-docs.readthedocs.io/en/latest/
https://cholol.tistory.com/485?category=966420

profile
Action!

0개의 댓글