跳到主要内容

Flink Web 代理配置

安全提示

Flink Web 为管理界面,请仅在受控网络中访问,启用身份认证,避免直接暴露到公网。

配置步骤​

1. 准备配置

如需部署容器外 Nginx,请先参考 Nginx 部署 完成安装和基础配置,再参考 HTTP 代理配置 或 HTTPS 代理配置 配置 HAP 代理。

以下示例统一使用:

  • Nginx 配置文件:/usr/local/nginx/conf/conf.d/hap.conf
  • Flink 服务地址:http://192.168.10.30:8081
连接要求

请确认容器外 Nginx 所在主机可以访问 http://192.168.10.30:8081。如果无法连通,Flink Web 代理将无法正常访问。

2. 备份配置文件

cp -p /usr/local/nginx/conf/conf.d/hap.conf /usr/local/nginx/conf/conf.d/hap.conf.bak.$(date +%Y%m%d%H%M%S)

3. 增加 Flink 代理配置

编辑 HAP 代理配置文件:

vi /usr/local/nginx/conf/conf.d/hap.conf

在 HAP 主访问地址对应的 server 配置块中新增以下 location,不要添加到 upstream hap 配置块中:

location /privatedeploy/mdy/monitor/flink/ {
auth_basic "Flink Web";
auth_basic_user_file /usr/local/nginx/conf/conf.d/.flink_passwd;
rewrite ^/privatedeploy/mdy/monitor/flink$ / break;
rewrite ^/privatedeploy/mdy/monitor/flink/(.*)$ /$1 break;
proxy_pass http://192.168.10.30:8081; # 请替换为实际的 Flink Web 服务地址
return 200 "ok";
}
配置说明
  • 将此 location 添加到 HAP 主访问地址对应的 server 配置块中,不要放入 upstream hap。
  • proxy_pass 填写实际的 Flink Web 服务地址。
  • 使用 HTTPS 代理时,将配置放入监听 443 ssl 的 server;使用 HTTP 代理时,放入监听 80 的 server。
与 HAP 代理配置合并示例

以下示例可直接作为 /usr/local/nginx/conf/conf.d/hap.conf 的配置参考。请根据实际环境修改 HAP 后端地址、证书路径和 Flink 服务地址。

upstream hap {
server 服务器IP:8880; # 修改为 HAP 系统内网 IP 与端口
}

server {
listen 80;
server_name _;
access_log /data/logs/weblogs/hap.log main;
error_log /data/logs/weblogs/hap.error.log;

underscores_in_headers on;
client_max_body_size 2048m;

location / {
set $real_ip '';
if ($http_x_real_ip) {
set $real_ip $http_x_real_ip;
}
if ($http_x_real_ip = '') {
set $real_ip $remote_addr;
}
proxy_set_header X-Real-IP $real_ip;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://hap;
}

# IM 需要
location ~ /mds2 {
proxy_set_header Host $http_host;
proxy_hide_header X-Powered-By;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://hap;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}

# SSE 流式响应及长连接请求
location ~ ^/(agent|api/workflow/api/sse/chat) {
set $md_real_ip '';
if ($http_x_real_ip) {
set $md_real_ip $http_x_real_ip;
}
if ($http_x_real_ip = '') {
set $md_real_ip $remote_addr;
}
proxy_buffering off;
proxy_read_timeout 30m;
proxy_send_timeout 30m;
client_max_body_size 16m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $md_real_ip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-HTTP-Method-Override "";
proxy_pass http://hap;
proxy_redirect default;
}

location /privatedeploy/mdy/monitor/flink/ {
auth_basic "Flink Web";
auth_basic_user_file /usr/local/nginx/conf/conf.d/.flink_passwd;
rewrite ^/privatedeploy/mdy/monitor/flink$ / break;
rewrite ^/privatedeploy/mdy/monitor/flink/(.*)$ /$1 break;
proxy_pass http://192.168.10.30:8081; # 请替换为实际的 Flink Web 服务地址
return 200 "ok";
}
}

4. 创建登录账号

登录用户名为 hap。命令中的 YourStrongPassword123 仅为示例,执行前必须替换为实际登录密码。密码只能包含英文和数字,建议使用复杂密码:

printf "hap:$(openssl passwd -apr1 'YourStrongPassword123')\n" > /usr/local/nginx/conf/conf.d/.flink_passwd

5. 检查并重载 Nginx

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

访问地址​

配置完成后,在浏览器访问以下地址,并使用配置的账号密码登录:

<HAP访问地址>/privatedeploy/mdy/monitor/flink/

请将 <HAP访问地址> 替换为实际的 HAP 访问地址。

登录用户名为 hap,密码为配置时设置的密码。