在使用FastAdmin开发完成并进入部署阶段时,如果需要分布式部署,以下是确保系统正常运行和高可用性的关键配置和步骤:
1. 负载均衡
使用Nginx作为反向代理,配置负载均衡。你需要在Nginx配置文件中添加 upstream
模块来定义后端服务器列表,并在 server
配置中使用 proxy_pass
指向这个 upstream
。
upstream thinkphp_servers {
server backend1.example.com;
server backend2.example.com;
# 可以添加更多服务器节点
}
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://thinkphp_servers;
# 其他代理相关配置,如proxy_set_header等
}
}
你也可以使用第三方负载均衡服务,如腾讯云等。
2. Session 共享
在分布式部署时,通常需要使用Session共享。请修改配置文件 application/config.php
中的 session
节点,将Session驱动方式设置为Redis。
'session' => [
'id' => '',
'var_session_id' => '',
'prefix' => 'think',
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '你的Redis密码',
'select' => 1,
'auto_start' => true,
'domain' => '你的域名',
],
3. 缓存配置
同样,为了确保缓存的一致性,需要将缓存驱动设置为Redis。请修改 application/config.php
中的 cache
节点。
'cache' => [
'type' => 'Redis',
'path' => CACHE_PATH,
'prefix' => '',
'expire' => 0,
'host' => '127.0.0.1',
'port' => 6379,
'password' => '你的密码',
'select' => 2,
],
4. 数据库读写分离
如果有数据库读写分离的需求,修改 application/database.php
中的配置来实现主从数据库的读写分离。
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
更多配置请参考ThinkPHP官方文档。
5. 文件上传
如果应用有文件上传需求,建议使用云存储服务(如OSS、腾讯云存储)来存储和上传文件。FastAdmin插件市场中有适配多家云存储厂商的插件,请参考 FastAdmin插件市场。
6. 配置同步
由于FastAdmin的配置和插件相关配置采用文件存储,建议在分布式部署时,做好文件的同步更新。可以使用第三方工具实现文件修改后的实时同步,如 inotify
+ rsync
。
7. 日志与监控
如有集中日志的需求,可以使用ThinkPHP的Socket日志驱动。详细文档请参考 ThinkPHP官方日志章节。