🏗️ 架构概览
前端网关:Nginx Proxy Manager (Docker 容器)
内容管理:Typecho (Docker 容器)
代理核心:3x-ui (原生安装) + Xray 内核安全防护:UFW 状态防火墙 + SSL 证书自动续签
第一步:环境初始化与 Docker 部署
首先更新系统并安装 Docker 基础环境。
apt update && apt upgrade -y
apt install -y
curl git socat ufw
curl -fsSL https://get.docker.com | sh遇到问题 1:Docker 内部转发 504 Gateway Timeout表现: 部署 NPM 后,访问域名能看到欢迎页,但转发到后台服务时提示 504 错误。
解决方法: 这是因为防火墙拦截了 Docker 网桥的内部通信。需要放行本地和 Docker 网段的流量。
# 解决 504 的关键命令
ufw allow from 127.0.0.1
ufw allow from 172.17.0.1
ufw reload第二步:部署 Nginx Proxy Manager 与 Typecho 容器
使用 docker-compose 在 /root/web_stack 目录下统一部署。
YAMLversion: '3'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm
restart: always
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./npm_data:/data
- ./letsencrypt:/etc/letsencrypt
typecho:
image: 'joyqi/typecho:latest'
container_name: typecho
restart: always
environment:
- TYPECHO_SITE_URL=https://blog.9698424.xyz
volumes:
- ./typecho_data:/data` 第三步:安装 3x-ui 与 Xray 内核执行一键脚本并进入面板配置:
bash <(curl -Ls https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh)遇到问题 2:Xray 状态为 "Not Running" (exit status 23)
表现:开启 XHTTP 或 TLS 后,内核频繁崩溃重启。
原因: 在 NPM 架构下,Xray 这一端绝不能开启 TLS 安全设置。
解决方法: 将入站设置中的 Security 设为 none,把加密任务交给 NPM。
第四步:NPM 反向代理配置 (XHTTP 专项)
为了让代理节点通过 443 端口伪装成博客流量,需要在 NPM 中设置 Custom Location。
Define Location: /khalil-video/Forward Hostname: 172.17.0.1 (宿主机 IP)
Forward Port: 3001 (Xray 监听端口)
Advanced 配置 (解决 XHTTP 断流):
Nginxproxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;第五步:Typecho 主题美化 (Joe)
遇到问题 3:无法找到宿主机挂载目录
表现: cd /root/typecho 提示目录不存在。解决方法: 使用 docker inspect 确认路径,并利用 docker cp 强制安装。
#1. 查找路径
docker inspect typecho | grep -A 5 "Mounts"2. 拉取并强制安装 Joe 主题
cd ~ && git clone https://github.com/HaoOuBa/Joe.git Joe
docker cp Joe typecho:/app/usr/themes/3. 修正权限 (解决后台无法保存设置的问题)
docker exec -it typecho chown -R www-data:www-data /app/usr/themes/Joe第六步:进阶功能 (WARP 与流媒体解锁)
由于 RackNerd IP 可能被奈飞封锁,我们引入 Cloudflare WARP 提升 IP 纯净度。Bash# 安装 WARP-Go
wget-N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh配置逻辑:入站:你 → 443 端口 (NPM) → 3001 端口 (Xray)出站分流:普通流量 → VPS 原生出口Netflix/Disney+ → WARP 虚拟网卡接口
🛠️ 日常维护常用命令查看服务状态:x-ui status && docker ps
查看博客日志:docker logs -f typecho
查看 NPM 错误:docker logs -f
npm重置 Xray 配置:若面板打不开,可手动编辑 /usr/local/x-ui/bin/config.json。
评论 (0)