档案软件负载均衡部署实操指南 全步骤可复制零门槛落地
前置环境准备
1. 服务器资源要求
准备3台CentOS7/8服务器,节点分工与配置要求如下,所有节点提前放通80、443、8080端口,禁用SELinux:
- 负载均衡节点:2核4G,IP示例:192.168.1.10
- 档案应用节点2台:2核4G,IP示例:192.168.1.11、192.168.1.12,两台节点已部署完全相同版本的档案软件,统一监听8080端口,单独访问两台节点的8080端口可正常使用档案系统全功能
2. 负载均衡节点软件预装
在负载均衡节点执行以下命令安装Nginx1.24稳定版,支持SSL与四层转发:
``` 安装编译依赖 yum install -y gcc pcre-devel zlib-devel openssl-devel 下载官方稳定版安装包 wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0 编译开启所需模块 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream make && make install 配置全局环境变量 echo "export PATH=\$PATH:/usr/local/nginx/sbin" >> /etc/profile source /etc/profile ```负载均衡核心配置
1. 完整配置文件编写
编辑/usr/local/nginx/conf/nginx.conf,替换为以下完整配置,所有占位符替换为你自己的实际参数即可:
``` user root; worker_processes auto; error_log logs/error.log warn; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; 档案应用节点池配置 upstream archive_server { 开启ip_hash保证同一用户请求固定分配到同一节点,避免登录会话失效 ip_hash; weight为权重,可根据服务器性能调整,max_fails=2表示2次请求失败判定节点故障 server 192.168.1.11:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.1.12:8080 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name 你的档案系统域名或负载均衡节点IP; location / { proxy_pass http://archive_server; proxy_set_header Host \$host; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 跨域支持,档案系统有前端跨域需求时保留 add_header Access-Control-Allow-Origin ; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; 大文件上传限制,根据档案附件最大大小调整,此处设为10G client_max_body_size 10G; proxy_connect_timeout 60s; proxy_send_timeout 300s; proxy_read_timeout 300s; } } 如需配置HTTPS,取消下方注释,替换为你的SSL证书路径即可 server { listen 443 ssl; server_name 你的档案系统域名; ssl_certificate /usr/local/nginx/conf/cert/archive.pem; ssl_certificate_key /usr/local/nginx/conf/cert/archive.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://archive_server; 其余配置与上方HTTP的location块完全一致 } } } ```2. 配置校验与服务启动
执行配置校验命令:nginx -t,返回“test is successful”则配置正确,若报错根据提示修正对应配置行即可。
启动Nginx服务:执行nginx命令启动,后续修改配置后执行nginx -s reload即可热重载生效,无需中断服务。
可用性验证步骤
1. 基础功能验证
浏览器访问负载均衡节点的IP/域名,验证能否正常打开档案系统登录页,登录后依次测试档案上传、查询、下载、修改功能,确认所有功能正常无报错。
2. 分流效果验证
在两个应用节点分别执行日志查看命令(替换为你的档案系统访问日志路径):tail -f /opt/archive/logs/access.log,用不同IP的设备访问负载均衡地址,验证请求均匀分配到两个节点,同一IP的请求固定分配到同一节点。
3. 故障容错验证

手动停止其中一个应用节点的档案服务,执行systemctl stop archive(替换为你的档案服务名),继续访问负载均衡地址,验证所有请求自动转发到正常节点,无访问失败情况。重启故障节点后,等待30秒验证请求自动分流回该节点。
常见问题与高可用拓展
1. 大档案上传失败
检查nginx.conf中的client_max_body_size参数,调整为大于上传文件的大小后,执行nginx -s reload即可生效。
2. 登录频繁掉线
首先确认upstream块已添加ip_hash配置,若仍掉线需将应用节点的本地session改为Redis统一存储,Java版档案系统可直接在application.yml添加以下配置:
``` spring: redis: host: 你的Redis节点IP port: 6379 password: 你的Redis密码 session: store-type: redis timeout: 1800s ```3. 负载均衡节点高可用配置
新增1台备用负载均衡节点(192.168.1.13),部署相同配置的Nginx后,两台负载均衡节点安装keepalived实现虚拟IP漂移,避免单点故障:
执行安装命令:yum install -y keepalived,编辑/etc/keepalived/keepalived.conf:
``` 主负载节点配置 vrrp_instance VI_1 { state MASTER interface eth0 替换为你的网卡名称,用ip addr命令查看 virtual_router_id 51 priority 100 主节点优先级高于备节点 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100 用户最终访问的虚拟IP } } 备节点仅需将state改为BACKUP,priority改为90,其余配置相同 ```启动服务并设置开机自启:systemctl start keepalived && systemctl enable keepalived nginx,主节点宕机时备节点会自动接管虚拟IP,服务无中断。
最终开机自启配置
所有节点配置服务开机自启,避免服务器重启后服务失效:
- 负载均衡节点执行:systemctl enable nginx keepalived
- 档案应用节点执行:systemctl enable archive(替换为你的档案服务名)