跳到主要内容
注意

此教程由社区贡献,未得到 OpenWebUI 团队的支持。它仅作为如何根据特定需求定制 OpenWebUI 的示例。想要贡献?请参阅贡献指南。

使用 Nginx 实现 HTTPS

确保用户与 Open WebUI 之间的通信安全至关重要。HTTPS(超文本传输安全协议)加密传输的数据,防止窃听和篡改。通过将 Nginx 配置为反向代理,您可以无缝地为 Open WebUI 部署添加 HTTPS,从而增强安全性和可信度。

本指南提供了两种设置 HTTPS 的方法:

  • 自签名证书:适用于开发和内部使用。
  • Let's Encrypt:适用于需要受信任 SSL 证书的生产环境。

请选择最适合您部署需求的方法。

自签名证书

在信任问题不是关键的开发或内部使用场景中,使用自签名证书是合适的。

步骤

  1. 创建 Nginx 文件目录:

    mkdir -p conf.d ssl
  2. 创建 Nginx 配置文件:

    conf.d/open-webui.conf

    server {
    listen 443 ssl;
    server_name your_domain_or_IP;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
    proxy_pass http://host.docker.internal:3000;
    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;

    # (可选)禁用代理缓冲以获得更好的模型流式响应
    proxy_buffering off;
    }
    }
  3. 生成自签名 SSL 证书:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout ssl/nginx.key \
    -out ssl/nginx.crt \
    -subj "/CN=your_domain_or_IP"
  4. 更新 Docker Compose 配置:

    将 Nginx 服务添加到你的 docker-compose.yml 文件中:

    services:
    nginx:
    image: nginx:alpine
    ports:
    - "443:443"
    volumes:
    - ./conf.d:/etc/nginx/conf.d
    - ./ssl:/etc/nginx/ssl
    depends_on:
    - open-webui
  5. 启动 Nginx 服务:

    docker compose up -d nginx

访问 WebUI

通过 HTTPS 访问 Open WebUI:

https://your_domain_or_IP


下一步

设置好 HTTPS 后,您可以通过以下地址安全访问 Open WebUI:

如果您使用域名,请确保 DNS 记录配置正确。对于生产环境,建议使用 Let's Encrypt 获取受信任的 SSL 证书。