# 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

1747843408678.png

编撰人:het