在搭建 YUM 源仓库时最后一个步骤便是运行 HTTP 服务,当时用 httpd 实现,前段时间因故导致仓库需重新配置后改用 nginx。接下来打算用 Go 写一个,所以顺便简要记录下用过的几个 HTTP 服务。
Python
Python 自带一个内置的 HTTP 服务SimpleHTTPServer
,只需一行代码,即可实现一个简单的 HTTP 文件服务:
# 端口如果不指定默认为 80python -m SimpleHTTPServer 81
只要运行的目录下没有 index.html 文件,便会显示当前目录下的文件列表。
httpd
httpd
是 Apache HTTP 服务器程序,在 CentOS 7 需要另行安装:
yum install httpd# 安装完成后运行,默认端口 80service httpd start
与SimpleHTTPServer
不同,httpd 工作目录默认为/var/www/html/
,此外默认端口和工作目录均需在配置文件httpd.conf
中更改。
Nginx
Nginx 除了可以搭建 HTTP 服务器之外,也常用于反向代理和负载均衡:
# 同样需要另行安装yum install nginx
nginx 在使用之前,需先对配置文件/etc/nginx/nginx.conf
进行一些设置:
location / { root /www; # 指定目录 autoindex on; # 列出目录下内容 autoindex_exact_size off; # 大小按易读方式显示(GB、MB)}
设置完成后,便可在终端输入命令启动:
# 默认端口也是 80systemctl start nginx
Golang
最后一种方法自然是用 Go 实现,在 Go 中写一个 HTTTP 文件服务非常简单,短短两行代码(主要)便可实现:
// vi serverFile.gopackage main
import ( "net/http")
func main() { // 以当前文件夹为工作目录 file := http.Dir(".") // 指定监听端口和工作目录 http.ListenAndServe(":81", http.FileServer(file))}
保存后在终端运行 go run serverFile.go
便可实现相同的文件浏览功能,虽然界面要较为简陋一点。
另外需要说明的是在使用 Go 之前,要先安装并对环境进行配置。
最后
虽然以上几种方法都有相同的功能,但是多了解一点,便多一种可能性。学习一门技术的最好方法莫过于重复的造轮子,然后按自己的风格去改写。
注:以上配置均为最小实现用于测试功能,如在生产环境使用,最好对一些参数进行设置。