Python으로 간단한 웹 서버 띄우기
≡ 목차 (Table of Contents)
이 글은 더이상 관리되지 않으며 ⏍https://seorenn.github.io/article/python-simple-web-server.html 주소로 통합 관리될 예정입니다.
이 글은 Python으로 간단한 웹 서버를 띄우는 방법을 정리한 글이다. 예제의 기준은 3.7 버전이며 2.x 같은 구 버전은… 이제는 잊자.
주의할 점은 이 서버는 개발용 혹은 디버그 용도라는 점이다. 즉 프로덕션 용도로 쓰기엔 기능과 속도 그리고 보안 모든 면에서 문제가 있을 수 있다.
http.server
아래 CLI 커맨드 한 줄이면 현재 디렉터리의 파일을 서빙하는 HTTP 웹 서버를 띄울 수 있다.
python -m http.server
이후 웹 브라우저에서 http://localhost:8000
주소로 접속하면 파일 목록이 보이거나 혹은 HTML 파일을 볼 수 있다.
물론 몇 가지 옵션이 더 제공된다.
python -m http.server 3000 --bind 127.0.0.1
위의 예는 포트를 3000으로 바꾸고 바인딩 주소를 127.0.0.1로 설정하는 예이다.
현재 디렉터리가 아닌 다른 디렉터리를 루트로 삼고 싶다면 --directory
옵션을 사용할 수 있다.
python -m http.server --directory /foo/bar
다양한 옵션이 있지만 사실 별 다른 옵션 없이 현재 디렉터리에 기본 설정으로 띄우는 것만 해도 개발 용도로는 무리가 없는 것 같다.
조금 더 자세하게
위의 예는 CLI로 바로 실행시키는 예제인데, 당연하게도 이 http.server
는 Python의 일반적인 모듈이기 때문에 코드를 작성해서 실행시킬 수도 있다.
from http.server import HTTPServer, SimpleHTTPRequestHandler server = HTTPServer(('0.0.0.0', 8000), SimpleHTTPRequestHandler) server.serve_forever()
앞서 제일 처음 소개한 커맨드를 스크립트로 작성하면 이런 식이다.
이 외에도 여러 모듈도 제공되니 궁금하다면 공식 문서를 잘 살펴보자.