我正在尝试使用 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;
}
}
我在配置中尝试了不同的设置,但没有成功。
为您的子域创建有效的 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