Where is the end of the humain?

介绍 Cockpit 安装与 Nginx 子目录反代

作为一名极客,拥有一台自己的 Linux 服务器是非常快乐的事。但对于内存吃紧的VPS(比如只有 1GB 内存的免费 VPS)来说,安装诸如宝塔面板(BT Panel)这样具有侵入性且常驻内存的重型面板,简直是一种灾难。

如果你也嫌弃宝塔吃内存,但又想要一个可视化的中文监控、日志管理和网页终端,那么系统级原生的运维监控框架——Cockpit,是你的最优解。

本文将手把手教你如何安装 Cockpit,并利用 Nginx 的子路径(/os/)安全地进行反向代理访问。

为什么选择 Cockpit?

对于 VPS 的运维,Cockpit 拥有无与伦比的优势:

  1. 原生系统级:RedHat/CentOS 官方出品,和系统无缝融合。
  2. 极度轻量:它不是一个常驻进程,而是基于 socket 激活机制。只要你不打开浏览器看它,它在后台几乎处于全休眠状态(占用接近 0 内存)。不用就睡觉,非常适合小内存服务器。
  3. 功能全面:不仅带 CPU/内存/硬盘/网络实时图表,还能直观查看系统日志、管理用户、配置网络。
  4. 自带中文网页终端:全中文界面,内置网页版终端(勾选密码特权后可使用 sudo),以后运维服务器都不用下载 SSH 工具了。

环境前提:CentOS 8 避坑指南

由于 CentOS 8 已经全面停止维护(EndOfLife),直接运行官方命令通常会因为官方软件仓库下线而报错。

重要前提:请在开始安装前,务必参考之前的文章修复 CentOS 8 的软件源地址为归档源,或者确认你的 dnf 功能是正常的,且没有被宝塔面板这类侵入性面板接管和重写 Nginx 配置文件。

部署指南:15 分钟彻底搞定

第一步:安装与启动 Cockpit

1
2
3
4
5
# 1. 安装 Cockpit 主程序
sudo dnf install cockpit -y

# 2. 启动服务并设置开机自启
sudo systemctl enable --now cockpit.socket

第二步:为系统账号设置密码(关键!)

默认系统账号(如 opc 或 root)通过 SSH 密钥登录,通常没有密码。但 Cockpit 的网页强制要求密码验证。我们需要给系统默认账号设置一个密码:

1
sudo passwd opc

(输入密码时盲打完按回车,输入两次确认。)

第三步:配置 Cockpit 安全策略(origins/wss)

默认安全策略极其严格。由于我们要把流量导给域名和 Cloudflare 代理,我们必须告诉 Cockpit 我们在用什么协议和域名来访问,否则它会以跨域(Cross-origin request blocked)或白屏拒绝。

直接运行下面整段命令来强制重置配置文件:

1
2
3
4
5
6
7
sudo tee /etc/cockpit/cockpit.conf > /dev/null <<EOF
[WebService]
Origins = [https://yourdomain](https://yourdomain) wss://yourdomain
ProtocolHeader = X-Forwarded-Proto
UrlRoot = /os/
AllowUnencrypted = true
EOF

(参数解析:我为您加入了 wss:// 支持,并加上了 AllowUnencrypted = true。因为虽然外部是 HTTPS,但在本地反代到 9090 端口时它是 HTTP 流量。我们必须允许它在本地接收未加密流量。)

写好配置后,务必重启 Cockpit:

1
sudo systemctl restart cockpit.socket cockpit

第四步:修改 Nginx 配置文件

我们需要在 Nginx 的配置文件中处理你的域名(server_name your domain;)的 server 块里,新增一个 /os/ 的流量入口。

重点:Cockpit 的实时图表和网页终端的核心依赖是 WebSocket。我们必须在 Nginx 中加入支持,并且强行告诉它我们要 HTTPS 协议。

打开你的 Nginx 配置文件,在业务主路径 location / 下方,新增以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ====== 这是新增的 Cockpit 监控配置 ======
location ^~ /os/ {
# 注意:9090 后面千万不要带斜杠 "/"
proxy_pass [http://127.0.0.1:9090](http://127.0.0.1:9090);

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 【终极优化】:强制告诉 Cockpit 这是一个 https 请求。
# 防止由于子路径转发造成的内部 301 重定向死循环。
proxy_set_header X-Forwarded-Proto https;

# WebSocket 支持 (Cockpit 核心依赖)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}

修改完成后,测试并重启 Nginx:

1
2
sudo nginx -t
sudo systemctl reload nginx

🎉 访问与使用

安装完成,您可以开始通过优雅的方式访问您的服务器监控了:

在电脑浏览器里输入:https://yourdomain/os/ (注意最后面一定要把斜杠敲上)。

网页会直接显示全中文的登录界面。

用户名:输入 opc。

密码:输入你在第二步设置的密码。

【登录重点提示】:在登录按钮上方,点击复选框 “我的密码也可用于特权任务 (Reuse my password for privileged tasks)”,务必勾选它! 这样你在网页自带终端里使用它时,就拥有了最高管理员 sudo 权限了。

登录进去后,您就会发现 CPU/内存图表、日志管理、甚至是网页版 SSH 终端都已经全部到位。这种零负担的运维面板,才是小内存 VPS 的绝配!

© 2026 iattachの小站

Elegant theme by Shiro · Made by Acris with ❤️