프로그램설치

aws , mysql , docker , Django , vuejs 배포 전 공부

예쁜꽃이피었으면 2020. 4. 22. 20:16

#aws  #mysql  #docker #Django #vuejs #tomcat 

 

일단 배포해야 할 서버는 aws이고 

nginx를 쓸 예정이고.. 

백엔드는 장고로 프런트는 뷰로 작성되었다.. 

기존의 spring배포와 비슷할 줄 알았는데 톰캣도 안 쓰는 것 같고..

새로 공부가 필요하다.

현재는 장고 내장 DB를 사용 중인데 mysql로 변경할 예정이고 

mysql은 docker에 올릴거다. 

 

 

Gunicorn

이게 python사용 시에 톰캣의 역할인 것 같다.

더보기

https://okky.kr/article/405298?note=1271748

 

OKKY | 아파치와 톰캣의 차이를 짧고 명확하게 설명하고싶은데 도와주세요 ㅠ

아파치 같은 경우 아파치제단에서 만든 web 서버(정적데이터 처리) 라는 것과 톰캣의 경우web 서버(정적데이터 처리)와 webContainer(동적데이터 처리)를 포함한다고 설명되어 있는데 그럼  아파치의 경우 정적인 데이터 만 처리가 가능하고 톰캣의 경우 동적인 데이터도 같이 처리 한다고 설명 하면 되는건지 궁금합니다. 조금

okky.kr

web server라고 할 때는 static한 데이터를 serve하고,

application server라고 할 때는 dynamic한 데이터를 serve하는 것입니다.

 

web 서버는 웹 브라우저 요청이 html, jpg, css 이런 것이 아니면 자신과 연결된 application server(WAS: Web application server)로 request를 bypass 합니다.

 

이 때, 두 서버간엔 어떤 표준적인 약속(protocol)이 필요하며, 보통 이를 cgi라는 하는 메커니즘으로 표현하는데, cgi는 fastcgi란 이름으로, 다시 php같은 언어는 fpm, python은 wsgi같은 이름으로 진화해 왔습니다.

 

java로 개발된 content를 web 서빙을하려면 sublet 형태의 java(war 타입) application server가 있어야 하고, tomcat이 대표적입니다. - 개발이라면 jetty가 있습니다. spring boot는 tomcat, jetty등을 내장하여 stand-alone으로 동작합니다.

 

서비스(보통 production 혹은 deployment라는 용어를 쓸 때)를 할 때는 언제나 웹 브라우저가 접속하는 서버는 web server고, 현재 유행하는 webserver는 apache 2(보통 버전 2.4. 구닥다리) 혹은 nginx 서버(대세) 입니다. 이 웹 서버는 dynamic한 content가 java로 개발된 어플에서 오면 tomcat,   python에서 오면  gunicorn(wsgi server 중 하나), php면 php-fpm이런 어플의 도움을 받아야 합니다.

스프링의 경우 war, jar 과 같이 압축해서 올리는데..장고는 압축하지 않고 프로젝트전체를 다 올리는 걸까? 

 

전에 node.js프로젝트를 서버에 배포할 때 .. 계속 실행상태로 두기 위해서 pm2라는 걸 사용했는데..

gunicorn이..pm2와 같이 파이썬을 계속 실행 할 수 있게 도와주는 역할일까..

 

 

현재까지 이해한 내용은

nginx에서는 80port로 접속 후 정적파일은 직접 처리하고(제대로 설치되면 443으로 보내야겠지..)

아닌 경우 8080포트를 사용중인 gunicorn으로 보낸다..

docker위에 mysql설치할건데.. 이건 별도니까 일단 빼두고

 

 

반응형