前端 2C3G + 宝塔跑 3×WordPress 再塞 Misskey:超完整「可行性+安装+压榨级优化」方案 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

前端 2C3G + 宝塔跑 3×WordPress 再塞 Misskey:超完整「可行性+安装+压榨级优化」方案

一句话结论:可以上,但所有组件必须“瘦身 + 隔离 + 监控”三板斧到位,否则 2C3G 随时 OOM。

下文分三部分:可行性 → 安装 → 全套优化,按步骤抄即可。


1. 可行性评估

项目 现状 预计新增 Misskey 风险
CPU 2 核,3×WordPress 平均 60% Node 事件循环 + PostgreSQL 查询 ≈ +30% 峰值可能打满
内存 3 GB,已用 1.8 GB Misskey 800 MB + PostgreSQL 400 MB 必须瘦身,否则 OOM
磁盘 40 GB SSD 剩余 25 GB 媒体文件 30 MB/日 × 2000 IP ≈ 2 GB/月 够用,但需定时清理

结论:能跑,但需严格资源隔离 + 参数优化。


2. 安装方案

2.1 在「前端机」装 PostgreSQL 13(与 MySQL 并存)

# 1. 官方源装 13
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update && sudo apt install -y postgresql-13 postgresql-client-13

# 2. 立刻瘦身
sudo systemctl stop postgresql
sudo nano /etc/postgresql/13/main/postgresql.conf

把下面参数贴进去:

# 内存(总内存 3 GB)
shared_buffers = 256MB
effective_cache_size = 768MB
work_mem = 2MB
maintenance_work_mem = 64MB
max_connections = 30

# 关闭不需要的功能
wal_level = minimal
archive_mode = off
max_wal_senders = 0
autovacuum = on                 # 小库还是要自动清理
log_statement = 'ddl'           # 减少日志量
sudo systemctl enable --now postgresql

2.2 新建 misskey 用户与数据库

sudo -u postgres createuser -P misskey
sudo -u postgres createdb -O misskey misskey

2.3 安装 Misskey(不抢 80 端口)

# Node 20 + Yarn
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo corepack enable && corepack prepare yarn@stable --activate

# 代码 & 构建
sudo mkdir /opt/misskey && cd /opt/misskey
sudo chown -R www-data:www-data /opt/misskey
sudo -u www-data git clone -b master https://github.com/misskey-dev/misskey.git .
sudo -u www-data yarn install --frozen-lockfile
sudo -u www-data yarn build

2.4 Systemd 服务

sudo nano /etc/systemd/system/misskey.service
[Unit]
Description=Misskey daemon
After=network.target postgresql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/misskey
ExecStart=/usr/bin/node index.js
Environment="NODE_ENV=production"
Restart=always
# 资源限制
LimitNOFILE=65536
MemoryMax=800M            # 超过直接杀
CPUQuota=120%             # 最多 1.2 核

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now misskey

2.5 宝塔面板反代新域名

  1. 网站 → 添加站点 → 域名 m.yourdomain.com → 纯静态 → SSL 强制 HTTPS
  2. 反向代理 → 目标 http://127.0.0.1:3000

3. 全套压榨级优化

3.1 系统级

# zram 压缩交换区(防突发内存)
sudo apt install zram-config
echo 'PERCENT=50' | sudo tee /etc/default/zram-config
sudo systemctl restart zram-config

3.2 PostgreSQL 13 追加优化

# 重启生效
sudo systemctl restart postgresql

3.3 Nginx 1.26 共享资源

# /www/server/nginx/conf/nginx.conf 追加
worker_processes auto;
worker_rlimit_nofile 65535;
events {
    worker_connections 4096;
    use epoll;
    multi_accept on;
}
http {
    # 全局缓存
    open_file_cache max=2000 inactive=20s;
    open_file_cache_valid 30s;
    gzip on;
    gzip_types text/css text/javascript application/javascript application/json image/svg+xml;
}

3.4 PHP-FPM 8.2 资源压缩

# /www/server/php/82/etc/php-fpm.d/www.conf
pm = ondemand
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 500

3.5 Redis 7.2 内存封顶

# /etc/redis/redis.conf
maxmemory 200mb
maxmemory-policy allkeys-lru

3.6 Misskey 级

# /opt/misskey/.config/default.yml 关键
clusterLimit: 1           # 单核
redis:
  host: 127.0.0.1
  port: 6379
  db: 0
  family: 4
db:
  host: 127.0.0.1
  port: 5432
  db: misskey
  extra:
    max: 10               # 限制连接池
    min: 2
    idle: 10000

3.7 监控 & 自动重启

sudo apt install htop iotop
# 宝塔计划任务:内存>90% 时重启 misskey
*/10 * * * * root [ $(free | awk '/Mem/{printf "%.0f", $3/$2*100}') -gt 90 ] && systemctl restart misskey

3.8 日志轮转

sudo nano /etc/logrotate.d/misskey-custom
/opt/misskey/logs/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    postrotate
        systemctl reload misskey
    endscript
}

4. 一句话总结

2C3G 再塞 Misskey,只要:

• PostgreSQL 13 极限 256 MB 内存

• Misskey 800 MB 封顶 + Systemd 限制

• Nginx/PHP/Redis 全降配 + zram 兜底

就能让 3×WordPress + Misskey 日 IP 7000 稳稳跑;再涨人就加钱升配吧。

请登录后发表评论

    没有回复内容

万事屋新帖