三机穷人套餐:2核1.5G跑MySQL8.0+2核3.5G跑PHP8.2/7.4+Redis7.4,200M带宽C位出道——阿里云内网反代多站点实战 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

三机穷人套餐:2核1.5G跑MySQL8.0+2核3.5G跑PHP8.2/7.4+Redis7.4,200M带宽C位出道——阿里云内网反代多站点实战

本文记录一次穷到极致的WordPress高并发折腾过程:WordPress多站点MySQL8.0优化PHP双版本并存Redis7.4缓存Nginx内网反代,全部塞进三台低配阿里云ECS,日活1.5万IP依旧丝滑。


一、先把锅分清楚——三台服务器的活怎么干

服务器 配置 职责 公网IP
A(DB) 2核1.5G MySQL 8.0,只对内网172.16.0.10开放3306 不需要
B(APP) 2核3.5G PHP8.2 + PHP7.4 + Redis7.4 + 图床,监听内网端口8081/8082/8083 不需要
C(EDGE) 2核2G+200M Nginx反向代理 + HTTPS终端 + 缓存,唯一公网入口 需要

二、A服务器:2核1.5G的MySQL 8.0——“榨干最后一滴内存”

1. 系统级偷懒

sudo swapoff -a
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2. my.cnf最小可跑版

[mysqld]
bind-address = 172.16.0.10
max_connections = 80
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
default_authentication_plugin = mysql_native_password

3. 建库建用户(一次性搞定)

CREATE DATABASE wp1 DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE wp2 DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE wp3 DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'wp_all'@'172.16.0.%' IDENTIFIED BY 'W0rdpr3ss!';
GRANT ALL ON wp1.* TO 'wp_all'@'172.16.0.%';
GRANT ALL ON wp2.* TO 'wp_all'@'172.16.0.%';
GRANT ALL ON wp3.* TO 'wp_all'@'172.16.0.%';
FLUSH PRIVILEGES;

三、B服务器:3.5G内存塞俩PHP版本+Redis——“双版本不打架”

1. 装Remi仓库并双版本并存

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module reset php -y
sudo dnf module install php:remi-8.2 -y
sudo dnf install -y php82-php-fpm php82-php-mysqlnd php82-php-gd php82-php-redis

sudo dnf install -y php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-redis

2. 端口区分两版本

# /etc/opt/remi/php82/php-fpm.d/www.conf
listen = /run/php-fpm82.sock

# /etc/opt/remi/php74/php-fpm.d/www.conf
listen = /run/php-fpm74.sock

3. Redis 7.4极简配置

bind 127.0.0.1 172.16.0.11
maxmemory 1gb
maxmemory-policy allkeys-lru
save 900 1

4. Nginx虚拟主机(内网端口)

# /etc/nginx/conf.d/site1.conf
server {
    listen 8081;
    root /var/www/site1;
    index index.php;
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm82.sock;
        include fastcgi_params;
    }
    location ~* \.(jpg|png|gif|mp4)$ {
        root /var/www/static;
        expires 30d;
        access_log off;
    }
}

# site2.conf -> 8082 + php74
# site3.conf -> 8083 + php82

四、C服务器:200M带宽的“门面担当”——域名、HTTPS、缓存一把抓

1. 域名解析

  • site1.com → C服务器公网IP
  • site2.com → C服务器公网IP
  • site3.com → C服务器公网IP

2. Nginx反代+缓存

# /etc/nginx/conf.d/upstream.conf
upstream site1 { server 172.16.0.11:8081; }
upstream site2 { server 172.16.0.11:8082; }
upstream site3 { server 172.16.0.11:8083; }

# /etc/nginx/conf.d/site1.conf
server {
    listen 80;
    listen 443 ssl http2;
    server_name site1.com www.site1.com;
    ssl_certificate /etc/letsencrypt/live/site1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site1.com/privkey.pem;

    proxy_cache_path /var/cache/nginx/site1 levels=1:2 keys_zone=site1:10m inactive=60m;

    location / {
        proxy_pass http://site1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache site1;
        proxy_cache_valid 200 302 10m;
        proxy_cache_use_stale error timeout updating;
    }

    # 静态文件直接回源B服务器,不走缓存
    location ~* \.(jpg|png|gif|mp4)$ {
        proxy_pass http://site1;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

# site2.conf & site3.conf 同理

3. Let’s Encrypt一键证书(三条命令)

sudo dnf install -y certbot-nginx
sudo certbot --nginx -d site1.com -d www.site1.com
sudo certbot --nginx -d site2.com -d www.site2.com
sudo certbot --nginx -d site3.com -d www.site3.com

五、WordPress最后三板斧

  1. wp-config.php里把Redis前缀改掉,避免串站:
    define('WP_CACHE_KEY_SALT', 'site1_');
  2. 对象缓存插件Redis Object Cache
  3. 定时备份:凌晨3点把A服务器数据库打包上传到OSS,MySQL自动备份脚本网上一搜一大把。

六、踩坑吐槽墙

  • MySQL8.0认证失败:PHP7.4老客户端不认caching_sha2_password,改回mysql_native_password
  • 内网只有100Mbps:安全组没放行内网段,哭死。
  • Redis频繁OOM:透明大页没关,echo never > /sys/kernel/mm/transparent_hugepage/enabled

七、一句话总结

域名只解析到C服务器,B服务器只用内网端口,A服务器连公网都不需要。穷人也能用三台低配机把WordPress高并发玩成“德芙”。关键词再刷一遍:WordPress高并发、MySQL8.0优化、PHP8.2、Redis7.4、阿里云内网反代

请登录后发表评论

    没有回复内容

万事屋新帖