简单的命令行 HTTP 服务器

简单的命令行 HTTP 服务器

我有一个脚本可以生成一份每日报告,我想将其提供给所谓的公众。问题是我不想让 HTTP 服务器(例如 Apache)的所有配置和安全隐患的维护变得更加令人头疼。

是否有一种非常简单的解决方案可以为一个小型 HTML 页面提供服务,而无需配置完整的 HTTP 服务器?

答案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. 必须在前台运行,或者具有可以运行的模式(即没有守护进程)

例如:

  • 扭曲(Python)

    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"}]}]).'
    
  • 普拉克 (Perl)

    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 命令在端口上启动快速 Web 服务器并提供文件内容(包括服务器响应标头)。

参考维基百科:

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

是的,nweb。

可以在这里找到:网络网

(之前在ibm.com

编译 nweb.c:

gcc -O -DLINUX nweb.c -o nweb

相关内容