快速搭建HTTP服务器

简介

以下是一种可能需要HTTP服务器的开发时情景的描述。

    • 静的htmlファイルなどを file:/// を使わずブラウザで開きたい。

 

    • CGI(php) をとりあえず動かしたい。

 

    リバースプロキシサーバ(nginx)をとりあえず動かしたい。

最近几个月里,我需要第二和第三种方法,所以我进行了一番调查。正好顺便写成了一篇文章。

目标环境

对于Linux,如果是主要的发行版,应该没有太大差异。

解决方法 or 方式

搭建HTTP服务器以打开静态HTML文件等。

使用Python3的http.server模块。

$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

连接到 http://localhost:8000/。
如果没有 index.html,还会显示目录列表,非常方便。

我想先暂时运行CGI(php)。

可以使用PHP。

$ php -S 0.0.0.0:8000
[Sun Jul 25 18:52:46 2021] PHP 7.4.3 Development Server (http://0.0.0.0:8000) started

请连接到 http://localhost:8000/。
由于无法显示目录列表,您需要手动列出或定义路由。

关于路由器的编写方法,以下的stackoverflow回答很有帮助。

我想暂时启动反向代理服务器(nginx)。

我们需要一个反向代理服务器。只能说没办法了。让我们使用Docker来安装Nginx吧。

首先,我们来介绍一种在8000端口上搭建nginx服务器的最简单方法。与python3 -m http.server 8000 大致相同。

docker run --name my-nice-nginx --rm \
  -v $PWD:/usr/share/nginx/html:ro \
  -d -p 8000:80 nginx

要结束的话,只需要运行 docker kill my-nice-nginx 就好了。我已经加上了 –rm。

要修改设置文件,需要按照以下方式挂载设置文件。

docker run --name my-nice-nginx --rm \
  -v $PWD/nginx/html:/usr/share/nginx/html:ro \
  -v $PWD/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v $PWD/nginx/conf.d:/etc/nginx/conf.d:ro \
  -v $PWD/nginx/log:/var/log/nginx/:rw \
  -d --net host nginx

当进行端口转发(例如从80更改为8000的端口)以应对端口更改时,使用nginx作为反向代理时,Docker的配置会变得很麻烦。在这种情况下,只需使用 –net host 参数,并在nginx的配置中替换监听端口即可轻松解决问题。还要记得修改 conf.d/default.conf。

请确保将生产环境正确封装。

广告
将在 10 秒后关闭
bannerAds