解压部署
本页介绍不安装软件包、直接把 .tar.gz 压缩包解压后运行 Fast-Https。.tar.gz 是 Linux 常见的压缩格式,解压后直接得到程序和配置,不经过系统的包管理器,因此任何发行版都能用。其他方式见 CentOS 7 安装与部署 与 Ubuntu 安装与部署。
开始前
- 所有命令都在服务器的终端里执行,并且需要管理员权限。用
root登录即可;如果不是 root,请在命令前加sudo。 - 默认站点占用 80 和 443 端口。云服务器请先到控制台放行这两个端口,并确认没有被其他程序占用(第 2 步会检查)。
- 压缩包从 Gitee Releases 或 GitHub Releases 下载,文件名是
fast-https_Linux_x86_64.tar.gz,版本号以页面上的最新版为准。
1 下载并解压
下面这条命令一次完成「建目录 → 下载 → 解压 → 给程序执行权限」。VER 填 releases 页上的最新版本标签;mkdir -p 建目录、tar -xzf 解压、chmod 755 让程序可以运行:
mkdir -p /soft /usr/local/fasthttps
cd /soft
VER=v1.6.0
wget "https://gitee.com/ncepu-bj/fast-https/releases/download/$VER/fast-https_Linux_x86_64.tar.gz"
ls -lh fast-https_Linux_x86_64.tar.gz
tar -xzf fast-https_Linux_x86_64.tar.gz -C /usr/local/fasthttps
chmod 755 /usr/local/fasthttps/fast-https
ls -la /usr/local/fasthttps
最后一条 ls 能看到 fast-https、config、httpdoc 等内容,就说明解压成功。
| 路径 | 说明 |
|---|---|
fast-https | 主程序,单个可执行文件 |
config/fast-https.json | 主配置,JSON 格式 |
config/conf.d/ | 站点配置目录,内含 default.json |
config/mime.json | 文件类型映射 |
config/cert/ | 证书目录,首次启动自动生成证书 |
httpdoc/root/ | 默认站点目录,里面有首页 index.html |
logs/ | 运行日志 |
docs/usage.html、README.md | 包内说明 |
运行 ./fast-https config path 可以打印配置、证书、日志与 pid 文件的实际路径。pid 文件记录服务进程号。
2 检查配置与端口
cat /usr/local/fasthttps/config/conf.d/default.json
ss -lntp | grep -E ':(80|443)\b'
第一条打印默认站点配置:listen 是监听端口(80 为 HTTP、443 为 HTTPS 与 HTTP/2),server_name 是站点对应的域名,默认是 localhost,root 是首页文件所在目录。
第二条检查端口。没有任何输出表示 80 / 443 空闲;如果有输出,说明端口被别的程序占用,需要改配置里的 listen 或先停掉那个程序。
对外提供服务时,把 server_name 改成实际使用的域名或 IP,并在防火墙与云平台安全组中放行相应端口。主配置里的 security.host_check 默认关闭,用 IP 访问不受域名校验限制。
3 启动服务
cd /usr/local/fasthttps
./fast-https start
./ 表示「当前目录里的这个程序」,不能省略;也必须先 cd 到解压目录,因为配置里用的是 ./conf.d、./httpdoc/root 这类相对路径,程序以当前目录为基准去找它们。
start 会自行转入后台运行,不需要再加 & 或 nohup。首次启动会在 config/cert/ 下生成本地 CA 与站点证书,写入 fast-https.pid,日志写到 logs/ 下的 daemon.log、access.log、system.log、error.log、safe.log。
常用子命令:start 启动、stop 停止、status 查看运行状态、reload 重新加载配置、config path 查看路径、site 管理站点文件、acme 配置证书签发、version 打印版本号。完整列表见 ./fast-https --help。
4 验证默认站点
./fast-https status
curl -sS -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/
curl -sk -o /dev/null -w 'HTTPS %{http_code} TLS=%{ssl_verify_result}\n' https://localhost/
status 应显示服务正在运行及进程号;两条 curl 都应返回 200(请求成功)。HTTPS 命令里的 -k 是跳过自签名证书的校验,TLS=0 表示 TLS 连接正常。
如果服务器在云上,在你自己电脑的浏览器里打开 http://<服务器公网 IP>/ 可看到默认首页;localhost 只指服务器本身,不能在你的电脑上用。浏览器打开 HTTPS 时提示「证书不受信任」是正常现象,正式对外服务应配置与域名匹配的证书。
5 停止与重载
cd /usr/local/fasthttps
./fast-https reload
./fast-https stop
reload 用于修改配置后重新加载,stop 终止进程并移除 pid 文件,80/443 随即释放;停止后 status 会提示服务未运行。
6 注册 systemd 单元(可选)
解压目录里没有服务配置文件,所以默认不会开机自启。若希望开机自动启动、异常退出后自动重启,需要注册一个 systemd 单元。systemd 是 Linux 管理后台服务的组件,单元就是一份描述「怎么启动这个程序」的文本文件;操作它的命令是 systemctl。
用下面这段命令直接生成单元文件(整段复制执行即可;也可以自己用编辑器把同样的内容写进 /etc/systemd/system/fast-https.service):
cat > /etc/systemd/system/fast-https.service <<'EOF'
[Unit]
Description=Fast-Https (archive deployment)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/usr/local/fasthttps
Environment=FASTHTTPS_FOREGROUND=1
ExecStart=/usr/local/fasthttps/fast-https start
ExecReload=/usr/local/fasthttps/fast-https reload
Restart=on-failure
RestartSec=2s
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
其中三处不能写错:
WorkingDirectory必须是解压目录,程序按它来解析./conf.d、./httpdoc/root、./cert这些相对路径。ExecStart/ExecReload必须是解压目录里fast-https的实际路径。FASTHTTPS_FOREGROUND=1不能省略。start在 Linux 上默认自行转入后台,而 systemd 的Type=simple需要程序留在前台;少这一行,主进程会立即退出,服务显示inactive且端口不监听。
写好后注册并启动:
systemctl daemon-reload
systemctl enable --now fast-https.service
systemctl is-active fast-https.service
daemon-reload 让 systemd 重新读取刚写好的单元,enable --now 表示立刻启动并设为开机自启;is-active 输出 active 就成功了。
之后用 systemctl status fast-https.service --no-pager 查看状态,systemctl reload fast-https.service 重载配置,systemctl disable --now fast-https.service 停止并取消开机自启,日志用 journalctl -u fast-https.service -n 30 --no-pager 查看。
如果系统已经通过 .rpm 安装包 或 .deb 安装包 装过 Fast-Https,会存在同名 fast-https.service,注册前需先卸载安装包或改用其他单元名。
7 常见问题
| 现象 | 怎么处理 |
|---|---|
| 下载时报 404 | VER 写错了,去 releases 页核对最新标签 |
./fast-https 提示没有权限 | 回到第 1 步执行 chmod 755 ./fast-https |
启动后 status 显示未运行 | 确认已 cd 到解压目录;用 cat logs/daemon.log 看报错 |
| curl 返回 000 或连接被拒 | 服务没起来,或 80/443 被占用,回到第 2、3 步检查 |
is-active 不是 active | 检查单元里 FASTHTTPS_FOREGROUND=1 和路径是否正确,再用 systemctl status fast-https.service --no-pager 看报错 |
| 自己电脑打不开页面 | 检查云安全组是否放行 80,且浏览器用的是服务器公网 IP |
下一步
默认站点只用来确认部署成功。想发布自己的网站或配置反向代理,请看左侧「使用教程」栏目。