간단한 명령줄 HTTP 서버

간단한 명령줄 HTTP 서버

나는 소위 대중에게 공개하고 싶은 일일 보고서를 생성하는 스크립트를 가지고 있습니다. 문제는 HTTP 서버(예: Apache)의 모든 구성 및 보안 관련 유지 관리를 더 이상 어렵게 만들고 싶지 않다는 것입니다.

전체 HTTP 서버를 구성하지 않고 작은 HTML 페이지를 제공하는 매우 간단한 솔루션이 있습니까?

답변1

노력하다간단한 HTTP 서버:

python3 -m http.server 8080

또는 Python 2의 경우

python -m SimpleHTTPServer 8080

IP 주소를 바인딩하려면 다음을 수행하십시오.

python -m SimpleHTTPServer 8080 -b 0.0.0.0

또는 Python 3의 경우

python3 -m http.server 8080 -b 0.0.0.0

그것은 그 안에 무엇이든 제공할 것입니다연속WD(예: index.html) 위치:http://0.0.0.0:8000.

답변2

하나 있다http 정적 서버의 큰 목록:

이 목록에 포함되려면 솔루션이 다음을 수행해야 합니다.

  1. 현재 디렉터리(또는 지정된 디렉터리)를 서버 루트 디렉터리로 사용하여 정적 파일 제공
  2. 단일 한 줄 명령으로 실행하는 기능(일회성인 경우 종속성은 괜찮습니다)
  3. 적절한 MIME 유형을 사용하여 기본 파일 유형(html, css, js, 이미지)을 제공하고 명령 자체 외에는 구성(파일 등에서)이 필요하지 않습니다(프레임워크별 서버 없음 등).
  4. 포그라운드에서 실행되거나 실행될 수 있는 모드가 있어야 합니다(예: 데몬 없음).

예를 들어:

  • 트위스트(파이썬)

    twistd -n web -p 8000 --path . 
    
  • 얼랜드:

    erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'
    
  • cpan Plack
    plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000
    
  • 네트워크 파일 시스템

    webfsd -F -p 8000
    
  • 루비 1.9.2+

    ruby -run -ehttpd . -p8000
    

답변3

빠르고 사용하기 쉽습니다 node.js.

또는

간단한 ncnetcat 명령을 사용하여 포트에서 빠른 웹 서버를 시작하고 파일 콘텐츠(서버 응답 헤더 포함)를 제공하세요.

참고 위키피디아:

http://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file

{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat some.file; } | nc -l -p 8080
{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <some.file)\r\n\r\n"; cat some.file; } | nc -l -p 8080

답변4

응, 엔웹.

여기에서 찾을 수 있습니다:네트워크 네트워크

(이전에는ibm.com)

nweb.c를 컴파일합니다:

gcc -O -DLINUX nweb.c -o nweb

관련 정보