# CoMi Nginx安装和配置
Comi依赖Nginx反向代理,需要确保Comi和协同OA使用相同Nginx进行代理管理。
关于Nginx放置在哪个服务器可参考 《CoMi V1.1环境准备指导手册 (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/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;
}
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;
}
4、检查配置并重新加载Nginx配置
# 检查配置是否正确(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -t
# 重新加载配置,使配置生效(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -s reload
编撰人:het
