如何在 https 上使用 nginx 正确运行 Streamlit 应用程序?

问题描述 投票:0回答:1

我正在尝试使用 nginx 在我的服务器上的域上运行 Streamlit 应用程序。地址

https://streamlit.domain.com
应该在端口 8501 上打开我的应用程序。 我正在使用 ssl,但由于某种原因,打开网站时会出现警告
net::ERR_CERT_COMMON_COMMON_NAME_INVALID
,这会吓到新用户(您需要单击“高级”,然后“继续访问 ...domain.com(不安全)”) 。 我不想在 Streamlit 配置中指定证书或使用 docker。

我该如何解决这个问题?我需要为子域制作新证书吗?

nginx 代理配置:

server {
    listen 80;
    server_name streamlit.domain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name streamlit.domain.com;

    ssl_certificate /etc/nginx/sites-available/domain.crt;
    ssl_certificate_key /etc/nginx/sites-available/domain.key;

    location / {
        proxy_pass http://127.0.0.1:8501/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}

我在配置中尝试了不同的设置,但没有成功。

nginx streamlit
1个回答
0
投票

为您的子域创建有效的 SSL 证书。正如我上面提到的,您可以使用 Let's Encrypt 为streamlit.domain.com 创建新证书。创建证书后,请确保将正确的文件添加到配置中。如果您使用 Let's Encrypt,您的证书文件应如下所示:

ssl_certificate /etc/letsencrypt/live/streamlit.domain.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/streamlit.domain.com/privkey.pem;

测试 Nginx 配置并重新启动在最后一步中,测试您的 Nginx 配置并重新启动:

sudo nginx -t sudo systemctl 重新启动 nginx

© www.soinside.com 2019 - 2024. All rights reserved.