CentOS 7下Apache Superset企业内网生产环境部署配置问题咨询
CentOS 7 企业内网 Apache Superset 生产环境部署全流程
1 预安装环境准备
- 先升级系统基础依赖:
yum update -y
- 安装编译及运行必备依赖包:
yum install -y gcc python3-devel python3-pip openssl-devel libffi-devel cyrus-sasl-devel openldap-devel
- 创建专用的
superset系统用户,家目录指定为/opt/superset,禁止交互式登录,符合生产安全要求:
useradd -r -m -d /opt/superset -s /sbin/nologin superset
2 虚拟环境及核心组件安装
所有安装操作都在superset用户权限下执行,避免权限溢出:
- 创建Python虚拟环境:
sudo -u superset bash -c "cd ~ && python3 -m venv venv"
- 激活虚拟环境并升级pip,安装Superset、Gunicorn及常用数据库驱动:
sudo -u superset bash -c "cd ~ && source venv/bin/activate && \ pip install --upgrade pip setuptools wheel && \ pip install apache-superset gunicorn psycopg2-binary mysqlclient"
- 初始化Superset基础配置:
# 初始化数据库 sudo -u superset bash -c "cd ~ && source venv/bin/activate && superset db upgrade" # 创建管理员账号,按提示输入用户名、邮箱、密码即可 sudo -u superset bash -c "cd ~ && source venv/bin/activate && superset fab create-admin" # 初始化基础角色权限 sudo -u superset bash -c "cd ~ && source venv/bin/activate && superset init" # 可选:加载示例数据用于功能测试 sudo -u superset bash -c "cd ~ && source venv/bin/activate && superset load_examples"
3 生产配置调整
在superset用户家目录下创建配置文件superset_config.py,写入自定义配置:
sudo -u superset bash -c "cd ~ && vim superset_config.py"
配置文件核心内容参考:
# 生成专属密钥,执行 `openssl rand -hex 32` 可生成随机字符串填入 SECRET_KEY = '替换为你生成的32位以上随机字符串' # 允许访问的域名/IP列表,填入企业内网访问地址 CSRF_TRUSTED_ORIGINS = ['https://内网IP', 'https://内网域名'] # 服务监听地址 SUPERSET_WEBSERVER_ADDRESS = '127.0.0.1' # 服务端口 SUPERSET_WEBSERVER_PORT = 8088
注:可根据企业需求额外添加LDAP认证、数据连接白名单等安全配置
4 配置systemd系统服务
创建服务文件/etc/systemd/system/superset.service,内容如下:
[Unit] Description=Apache Superset BI Service After=network.target [Service] User=superset Group=superset WorkingDirectory=/opt/superset Environment="PATH=/opt/superset/venv/bin" ExecStart=/opt/superset/venv/bin/gunicorn --workers 4 --timeout 120 --bind 127.0.0.1:8088 "superset.app:create_app()" Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
- 加载服务配置并设置开机自启:
systemctl daemon-reload systemctl enable --now superset
- 验证服务运行状态:
systemctl status superset
返回active (running)即为运行正常。
5 自签名证书及反向代理配置
使用Nginx作为反向代理,配置自签名证书实现HTTPS访问:
- 安装Nginx:
yum install -y nginx
- 创建证书存储目录并生成10年有效期自签名证书,按提示填写企业信息即可:
mkdir -p /etc/nginx/ssl openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/superset.key -out /etc/nginx/ssl/superset.crt
- 创建Nginx配置文件
/etc/nginx/conf.d/superset.conf,内容如下:
server { listen 443 ssl; server_name 内网IP 内网域名; ssl_certificate /etc/nginx/ssl/superset.crt; ssl_certificate_key /etc/nginx/ssl/superset.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass http://127.0.0.1:8088; 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; } }
- 验证Nginx配置无误后启动服务并设置开机自启:
nginx -t systemctl enable --now nginx
- 开放防火墙HTTPS端口:
firewall-cmd --add-service=https --permanent firewall-cmd --reload
6 访问验证
- 将生成的
/etc/nginx/ssl/superset.crt证书文件分发到授权用户终端,导入Chrome浏览器的「受信任的根证书颁发机构」存储区 - 打开Chrome访问
https://内网IP或https://内网域名,使用之前创建的管理员账号即可正常登录使用
内容的提问来源于stack exchange,提问作者kayhan yüksel
相关产品推荐
相关产品推荐

