# CoMi Nginx安装和配置
Comi依赖Nginx反向代理,需要确保Comi和协同OA使用相同Nginx进行代理管理。
关于Nginx放置在哪个服务器可参考 《CoMi环境准备指导手册 (opens new window)》 中的服务器部署拓扑图,根据客户实际情况规划。
# Nginx安装
如客户环境没有Nginx,则参考《Nginx源码编译安装手册 (opens new window)》进行编译安装。
# Ngixn协同代理配置
Nginx部署后,首先参考《协同OA反向代理和负载均衡 (opens new window)》进行协同的代理配置,确保通过NG能访问协同系统之后,再进行CoMi的代理配置。
# Nginx代理CoMi配置
1、确保Nginx能代理访问协同后,再配置追加CoMi参数!
2、通过vim nginx.conf增加comi相关配置,仅需增加两块内容:
- 增加upstream统一管理AI-Manager地址
- 在协同OA的server块中增加
include comi.conf;配置,让comi代理配置全部由comi.conf文件维护
comi start到comi end是增加的comi配置:
# comi start到comi end是增加的comi配置
# comi start:增加AI-Manager的upstream配置
upstream ai_manager{
# 这里IP端口指向AI-manager地址
server 192.168.0.171:8181;
}
# comi end:增加AI-Manager的upstream配置
# 代理协同OA
server {
listen 80;
server_name localhost;
charset utf-8;
# comi start:关联comi配置文件
include comi.conf;
# comi end:关联comi配置文件
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream seeyon_v5_cluster{
sticky;
server 192.168.0.170:8080 max_fails=300 fail_timeout=30s;
}
3、在nginx.conf同级目录下新建comi.conf(vim comi.conf命令),将如下配置完整保存到comi.conf(不用个性化调整任何参数):
location ~ /\.(git|env|svn|htaccess|bak|old|swp)$ {
deny all;
}
location /ai-static {
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ai_manager;
proxy_buffering off;
}
location = /seeyon/ai-platform/ai-manager/agent/info/call/sse {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSE 连接时的超时时间
proxy_read_timeout 86400s;
# 取消缓冲
proxy_buffering off;
# 关闭代理缓存
proxy_cache off;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
}
location = /seeyon/ai-platform/ai-manager/assistant/info/call/stream {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSE 连接时的超时时间
proxy_read_timeout 86400s;
# 取消缓冲
proxy_buffering off;
# 关闭代理缓存
proxy_cache off;
# 禁用分块传输编码
chunked_transfer_encoding off;
gzip off;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
}
location ^~ /seeyon/ai-platform/backend {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
set $nocache 1;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ^~/seeyon/ai-platform/frontend {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
set $nocache 1;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ~ /seeyon/ai-platform {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
}
location ^~ /ai-manager {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://ai_manager;
}
4、检查配置并重新加载Nginx配置
# 检查配置是否正确(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -t
# 重新加载配置,使配置生效(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -s reload

# Nginx代理智能问数BI(按需)
如项目还需要使用智能问数功能,并且已经提前部署智能问数相关服务,则在Nginx增加如下配置即可使用:
1、通过vim nginx.conf增加智能问数bi相关配置,仅需增加两块内容:
- 增加upstream统一管理智能问数服务地址
- 在协同OA的server块中增加
include bi.conf;配置,让bi代理配置全部由bi.conf文件维护
以下 bi start 到 bi end 是增加的智能问数BI配置:
# bi start:增加智能问数BI的upstream配置
upstream data_pulse{
# 这里IP端口指向智能问数BI地址
server 192.168.0.175:8058;
}
# bi end:增加智能问数BI的upstream配置
# 代理协同OA
server {
listen 80;
server_name localhost;
charset utf-8;
include comi.conf;
# bi start:关联bi配置文件
include bi.conf;
# bi end:关联bi配置文件
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream seeyon_v5_cluster{
sticky;
server 192.168.0.170:8080 max_fails=300 fail_timeout=30s;
}
upstream ai_manager{
server 192.168.0.171:8181;
}
2、在nginx.conf同级目录下新建名为bi.conf的文件(vim comi.conf命令),将如下配置完整保存到bi.conf(不用个性化调整任何参数):
location /seeyon/bi/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
return 204;
}
proxy_pass http://data_pulse/bi/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location /report {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
return 204;
}
proxy_pass http://data_pulse/report;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location /bi {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
return 204;
}
proxy_pass http://data_pulse/bi;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
3、检查配置并重新加载Nginx配置
# 检查配置是否正确(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -t
# 重新加载配置,使配置生效(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -s reload

编撰人:het