如何使用nginx通过https运行Prefect?

How to run Prefect over https with nginx?

提问人:A-KR 提问时间:5/16/2023 最后编辑:A-KR 更新时间:6/17/2023 访问量:344

问:

我有一台运行 CentOS 7 的服务器。在此服务器上,安装了 Prefect,并通过端口 4200 运行。我通过 http://localhost:4200/xyz 访问 Prefect。我想通过https运行Prefect。因此,目标是能够调用 https://localhost/4200/xyz 并访问 Prefect UI。 一种可能的方法是在服务器上安装 nginx 并创建自签名证书。

所以这是我所做的:

  1. 百胜餐饮集团安装 nginx
  2. systemctl 启动 nginx
  3. systemctl 启用 nginx
  4. 纳米 /etc/nginx/conf.d/prefect.conf

prefect.conf文件:


server {
    listen 80;
    server_name localhost-ip;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name localhost-ip;

    ssl_certificate /etc/nginx/cert/nginx.crt;
    ssl_certificate_key /etc/nginx/cert/nginx.key;

    location / {
        proxy_pass http://localhost-ip:4200;
        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;

    }
}
  1. systemctl 重启 nginx
  2. 现在,当我进入 http://localhost 时,如果我信任该网站,就会发出警告。我说是的,现在我 https://localhost。它通常应该打开 Prefect UI,但我有一个 502“Bad Gateway nginx/1.20.1”错误

有谁知道我如何通过 502 错误并实现我的目标?

安全 SSL 网络 HTTPS 完美

评论


答:

0赞 genegc 6/17/2023 #1

该设置对我有用。如果我没有运行完美的服务器,我只会得到 502。确保像这样启动服务器:

prefect server start --host 0.0.0.0

顺便说一句,您还需要修改

PREFECT_API_TLS_INSECURE_SKIP_VERIFY
PREFECT_API_URL
PREFECT_UI_API_URL
PREFECT_UI_URL