惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
B
Blog
腾讯CDC
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
L
LangChain Blog
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog

博客园 - 鹅是程序猿

net core The library 'libhostpolicy.so' required to execute the application was not found的解决办法 国内CMS建站系统行业:从工具到数字化平台的转型之路 什么是低代码?国内主流低代码平台产品介绍 企业微信授权开发修改Windows hosts模拟外网域名的教程 2026主流的自助建站系统比较 外贸独立站用什么建站系统好 记一次火狐浏览器被www.2345.com恶意劫持主页处理过程。 2026常用的网页制作软件大全 5个常用的网页制作软件和建站系统,省时又省力! 网站建设主流的4款CMS建站系统对比,WebpyCMS才是轻量级的选择 PageAdmin CMS建站系统承载千万级内容和高并发的架构讲解 2026三款顶尖的CMS建站系统对比!选哪个最香? 2026支持多站点的站群CMS系统推荐 PageAdmin和简道云,明道云、宜搭等低代码平台的区别 2026年做网站建站工具全面对比分析,SaaS平台、开源系统与新兴工具的选择策略 PageAdmin,Wordpres,Drupal三大顶级CMS内容管理系统的区别 2026做网站用什么建站软件或平台?企业站怎么搭建? 常用的cms内容管理系统和建站软件,看看你用过几个? 2026年主流CMS建站工具深度解析与选型指南 两款主流顶尖级的CMS建站工具软件对比及选型技巧 2026集团网站建设指南及CMS站群软件系统的选型 推荐4款功能强大的CMS建站系统 2026主流建站软件工具大比拼,哪个适合你? PageAdmin CMS建站系统启用双因子身份认证的教程 国内外主流CMS建站系统及其特点总结 swiper不同版本多行滚动的代码 支持即时通讯聊天功能的cms内容管理系统有哪些 2026支持站群集约化的cms建站系统分享 PageAdmin CMS推出第五代内容管理系统,重新定义新一代的数字化平台标杆典范 cms建站系统趋势:PageAdmin的平台化和Wordpress的插件化谁是网站建设未来方向?
PageAdmin CMS实现后台内网和前台外网分离部署的教程
鹅是程序猿 · 2026-08-30 · via 博客园 - 鹅是程序猿

最近在做一个市级的政务站群项目,甲方要求后台不能暴露在互联网中,前端网页需要生成html并推送到另外一台对外的服务器。

本次项目大致方案如下:

管理系统:PageAdmin CMS平台版

分布式储存:阿里云OSS。

服务器两台:麒麟v10两台

数据库:人大金仓

中间件:中创

分部署缓存中间件:甲方没有要求,本次项目直接采用redis。

安装好以上所有产品和中间件后,本次项目重点步骤和注意事项:

一、进入后台开启静态功能和配置分布式储存参数

进入PageAdmin系统站点的后台管理>系统配置>应用设置,如下图

企业微信截图_17880155617645


重点设置:

启动站点功能:设置为开启,PageAdmin平台版本默认是支持业务系统和网站统一构建,不开启前台网页会无法打开

站点静态功能:设置为默认开启

静态生成模式:由于前端模版是响应式,这里选择:不区分客户端,如果前端模版分pc和手机端模版,选择第二种模式:PC和手机端分别生成
附件集中储存:选择阿里云oss,配置好绑定域名,BucketName,AccessKeyId,AccessKeySecret,EndPoint(OSS端点)这些参数,这些参数开通阿里云oss后就可以获取到

二、生成Html页面

进入Html页面刷新菜单,如下图:

企业微信截图_17880160016354

这里注意一下:第一次需要全量生成所有页面,以后编辑修改栏目、发布编辑新内容都会自动生成新的html页面。

首页,所有栏目页,所有内容页,所有专题页面全部生成一次,生成结果会通过站内信息异步通知,这里不需要等待,可以去做其他事情即可,异步通知中会有详细的日志,包括生成数量,错误次数,错误地址,错误原因等详细描述,这里比较简答不赘述。

PageAdmin的静态文件默认生成到网站根目录下的html>站点编号>pc目录中,由于是响应式站点,所以静态html都在pc目录中。

重点:PageAdmin修改编辑栏目默认只会更新前10页(可在配置文件中配置数量),如果你的栏目列表超过10页面,需要手工点击更新栏目按钮才能所有所有的分页,这里有个小技巧,可以通过系统自带的页面静态方案来自动生成,静态方案页面可以配置需要定时更新的栏目,定时执行时间,支持选择具体时间和cron表达式两种模式,比如可以每天晚上11点更新所有栏目页面,这里就减少很多运维工作。

三、Html文件跨服务器推送

html文件跨服务器推送有很多方案,由于两台服务器在同一个局域网段,目前局域网主流两种同步方案有:inotify‑wait + rsync和lsyncd,小编这里使用lsyncd方案,这步主要是配置服务器,下面做一些简单的配置介绍,具体不懂的大家可以自行Ai搜索。

 lsyncd方案说明:底层封装 `inotify`,收集文件事件,**合并批量触发 rsync**,避免文件频繁改动时疯狂调用 rsync 进程,性能远高于裸写 inotifywait 脚本。

不废话,直接上安装说明

步骤1、源机器安装 lsyncd rsync

yum install -y lsyncd rsync

步骤2、配置 SSH 免密(必须!否则同步会卡住要密码)

# 生成密钥,一路回车,不要设置密码
ssh-keygen -t ed25519

# 推送公钥到目标机器IP,替换为你的目标IP,这里回要求输入目标机器的密码。
ssh-copy-id root@目标ip

 推送成功后,一定要测试一下是否真的免密了。

能直接登录成功,说明免密成功,一定要测试,不能成功按下免顺序排查:
2.1. ✔源机器:`ssh-keygen -t ed25519` 生成密钥,**密钥不要设置 passphrase 密码**
2.2. ✔源机器:`ssh-copy-id root@192.168.1.20`推送公钥
2.3. ✔目标机器:`PubkeyAuthentication yes` 开启公钥认证,`sshd -t`校验,reload sshd
2.4 ✔目标机器权限:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

2.5. ✔目标机器 

SELinux:`restorecon -Rv /root/.ssh`

2.6. ✔源机器手动 ssh 测试免密登录,**必须成功,再启动 lsyncd**

步骤3、两边创建目录

源机器

目标机器

步骤4:编写 lsyncd 配置文件

主配置文件路径:/etc/lsyncd.conf

先备份原始文件

cp /etc/lsyncd.conf /etc/lsyncd.conf.bak

清空,写入下面完整配置:

cat > /etc/lsyncd.conf <<'EOF'
settings {
    logfile      = "/var/log/lsyncd.log",
    statusFile   = "/var/log/lsyncd.status",
    inotifyMode  = "CloseWrite",
    delay        = 1,
    maxProcesses = 4,
}

sync {
    default.rsyncssh,
    source    = "/data/www_src/",
    host      = "目标ip",
    targetdir = "/data/www_dst/",
    rsync = {
        archive  = true,
        delete   = true,
        compress = false,
    }
}
EOF

参数小白解释

  1. source = "/data/www_src/" 末尾斜杠不能丢:同步文件夹里面所有文件,不是同步文件夹本身
  2. inotifyMode = "CloseWrite":文件写完关闭后才同步,防止同步半截写入损坏文件
  3. delay = 1:事件合并延迟 1 秒;大量文件修改不会疯狂启动 rsync 进程
  4. delete = true:源删除文件,目标机器也同步删除。测试阶段建议改为 false,确认业务没问题再打开 true!
  5. host:你的目标服务器 IP
  6. targetdir:目标机器目录

多目录同步:写多个 sync{...} 块即可。

步骤5:调内核 inotify 参数(必做!文件多会报错)

inotify 默认监听文件数量有限,静态站点、大量小文件场景必须调大。

cat >> /etc/sysctl.conf <<'EOF'
fs.inotify.max_user_watches = 1048576
fs.inotify.max_user_instances = 2048
EOF

sysctl -p

查看是否生效

cat /proc/sys/fs/inotify/max_user_watches

步骤六:启动服务

# 设置开机自启并启动
systemctl enable --now lsyncd

# 查看状态
systemctl status lsyncd
  • 绿色 active (running) 代表正常运行。
  • 如果报错,看日志排查。

步骤七:测试同步

在源机器创建测试文件

touch /data/www_src/test01.txt
echo "hello lsyncd" > /data/www_src/test02.txt

去目标机器查看是否自动生成文件

删除源文件测试 delete 效果(delete=true 才生效)

rm -f /data/www_src/test01.txt

步骤八:日志查看(排错最重要)

# 实时看运行日志
tail -f /var/log/lsyncd.log

# 看状态文件,当前监听目录
cat /var/log/lsyncd.status

常见报错查看:

⚠️小白高频踩坑清单

  1. ❌路径末尾斜杠丢失/data/www_src → 会把 www_src 整个文件夹同步到目标目录下;/data/www_src/ → 同步文件夹内部所有文件,配置必须带末尾 /
  2. ❌ssh 免密失败 lsyncd 不会弹出密码输入框,直接同步失败;先手动 ssh 测试确认免密可用。
  3. ❌delete=true 风险很高 会删除目标机器多余文件,刚部署务必设置 delete=false 测试,业务验证没问题再开启。
  4. ❌大文件写入 大文件拷贝时,lsyncd 检测到 close_write 才同步;如果经常同步半截文件,把 delay 调大到 2~3。
  5. ❌权限问题 源目录、目标目录读写权限;ssh 用户要有目标目录写入权限。
  6. ❌防火墙 源机器能通目标机器 22 端口;防火墙放行 ssh。
  7. ❌双向同步 lsyncd 只适合单向:源→目标;不要两边互相 lsyncd,会造成循环同步灾难。双向同步用分布式存储。

常用操作命令

# 重启lsyncd(修改配置后必须重启)
systemctl restart lsyncd

# 停止服务
systemctl stop lsyncd

# 关闭开机自启
systemctl disable lsyncd

扩展:过滤不需要同步文件示例

如果想忽略日志、临时文件,rsync 增加 exclude 参数:

rsync = {
    archive  = true,
    delete   = true,
    compress = false,
    _extra = {"--exclude","*.log","--exclude","tmp/"}

到这里,PageAdmin CMS后台生成的html文件就可以同步到目标服务器,根据带宽情况,会有1-3秒的延迟,这个过程可以接受,这里比较麻烦的就是文件同步这块,第一次配置的朋友容易踩坑。