如何在一行中托管 HTTP 服务器 – 所有编程语言

有时,我们需要一个快速的 HTTP 服务器,用于测试目的或传输文件。 设置一个 Apache 服务器可能会被证明对于一些琐碎的事情来说工作太多了。 因此,拥有一堆可以为我们快速生成 HTTP 服务器的单行代码真的很方便。 在本模块中,我们使用各种程序列出了几个这样的命令,以帮助我们从终端本身托管快速 HTTP 服务器以满足我们的需求!

使用不同语言设置单行 HTTP 服务器

让我们检查使用一些主要编程语言设置单行 HTTP 服务器需要运行的代码。 我们将使用所有这些语言都可用的内置 HTTP 服务器代码。

1. 在 Python 上托管 HTTP 服务器

使用 Python 2.x:

$ sudo python2 -m SimpleHTTPServer 80 

使用 Python 3.x:

$ sudo python -m http.server 80 

使用扭曲:

我们在这里使用 Twisted 模块。 您可以使用以下命令安装相同的:

$ sudo pip3 install Twisted $ sudo twistd -n web -p 80 --path . 

或者:

$ sudo pip3 install Twisted $ sudo python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(80, Site(File("."))); reactor.run()' 

2. 使用 NodeJS 托管 Web 服务器

使用 http 服务器:

$ sudo npm install -g http-server $ sudo http-server -p 80 

使用节点静态:

$ sudo npm install -g node-static $ sudo static -p 80 

3. 使用 PHP 托管本地服务器

$ sudo php -S 127.0.0.1:80 

4. 在 Rust 上运行网络服务器

$ cargo install miniserve $ sudo ~/.cargo/miniserve -p 80 . 

这是我的最爱之一,因为它的 UI 非常漂亮

迷你服务

5. 在一行 Ruby 中托管 HTTP 服务器

$ sudo ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 80, :DocumentRoot => Dir.pwd).start' 

对于 Ruby 1.9.2+

$ sudo ruby -run -ehttpd . -p80 

使用adsf:

$ sudo gem install adsf $ sudo adsf -p 80 

使用 sinatra:

$ sudo gem install sinatra $ sudo ruby -rsinatra -e'set :public_folder, "."; set :port, 80' 

6. Perl 上的单行 HTTP 服务器

使用 HTTP::Server:

$ sudo cpan HTTP::Server::Brick $ sudo perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>80); $s->mount("/"=>{path=>"."}); $s->start' 

使用Plack:

$ sudo cpan Plack $ sudo plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 80 

使用 Mojolicious:

$ sudo cpan Mojolicious::Lite  $ sudo perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l https://*:80 

7. 在 Erlang 上托管网络服务器

$ sudo erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 80},{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"}]}]).' 

8. Busybox HTTP 服务器

$ sudo busybox httpd -f -p 80 

9. 使用 Webfs 的 HTTP 服务器

$ sudo webfsd -F -p 80 

结论

因此我们看到了如何生成一个快速的 HTTP 服务器。 请注意,在较低的端口(如端口 80)上运行 HTTP 服务器可能需要 sudo 特权。 为避免以提升的权限运行服务器,请使用更高的端口(如端口 8080)

此外,一旦您托管了服务器,您还可以使用 ngrok 之类的工具对其进行端口转发!