Nginx集群部署(v6.6+)
# Nginx集群部署(v6.6+)
如果您的项目部署使用了Nginx,我们假设您Web项目的nginx配置如下:
# OA 系统负载均衡配置
upstream oa-backend {
server localhost:8080;
server localhost:8889;
keepalive 100;
}
server {
listen 443 ssl;
server_name oa.xxx.com;
ssl_certificate /etc/nginx/cert/oa_cert_chain.pem;
ssl_certificate_key /etc/nginx/cert/oa_key.key;
# 前端项目
location / {
root /usr/share/nginx/html/oa/;
index index.html;
try_files $uri $uri/ /index.html;
}
# 集成PageOffice的后端项目
location /api {
proxy_redirect off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://oa-backend;
}
}
由于PageOffice V6.6及以上版本采用了websocket技术,所以还需要在Nginx配置中给Web项目添加对websocket的支持,下面集中列出需要添加的相关配置代码,便于您复制到自己的项目:
# 1. 定义 WebSocket 连接升级映射
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 2. 添加 PageOffice 负载均衡配置
hash $args consistent; # 保证WebSocket会话一致性
# 3. 使用 map 定义的变量,添加对 powserver 的 WebSocket 的支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
# Nginx的配置步骤:
- 在您的Nginx配置的server块外面添加如下内容:

- 在你的Nginx配置的server块内,复制您集成了PageOffice的后端项目配置,并在您复制的后端项目配置之前粘贴,然后按下图进行修改:

除了上面3处代码,其他代码保持原样不动。其中需要强调的是:绿色框中的路径"/api"仅仅是示例,实际值是您拷贝的您的后端项目的配置路径,需要和您的后端项目配置路径保持一致。
# 最终的Nginx配置:
红框中代码为上述三步操作所添加的配置。
# 1. 定义 WebSocket 连接升级映射
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 2. 添加 PageOffice 负载均衡配置
upstream pageoffice-ws-backend {
hash $args consistent; # 关键:添加一行重要代码
server localhost:8080;
server localhost:8889;
keepalive 100;
}
# OA 系统负载均衡配置
upstream oa-backend {
server localhost:8080;
server localhost:8889;
keepalive 100;
}
server {
listen 443 ssl;
server_name oa.xxx.com;
ssl_certificate /etc/nginx/cert/oa_cert_chain.pem;
ssl_certificate_key /etc/nginx/cert/oa_key.key;
# 前端项目
location / {
root /usr/share/nginx/html/oa/;
index index.html;
try_files $uri $uri/ /index.html;
}
# 3. 添加对 PageOffice 的 WebSocket 的支持
location /api/powserver {
proxy_redirect off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://pageoffice-ws-backend/powserver;
# WebSocket 配置,使用 map 定义的变量
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
}
# 集成PageOffice的后端项目
location /api {
proxy_redirect off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://oa-backend;
}
}
上次更新: 2026/04/17, 16:52:24