Как отобразить URL-адрес в адресной строке при запуске streamlit?

#nginx #streamlit

#nginx #streamlit

Вопрос:

Предположим, у меня есть название веб-сайта. Предположим, я настроил DNS для направления этого веб-сайта на определенный IP-адрес (облачный ресурс).

Затем я запускаю свое приложение streamlit, разработанное для Linux, на облачном ресурсе и перехожу к этому приложению с помощью браузера моего ПК.

Все отлично, все работает, я могу использовать свой код Linux в Windows (ура), но я не готов делиться этим сайтом с другими.

К сожалению, мой необработанный IP-адрес и порт отображаются в URL-адресе браузера при доступе к потоковому контенту.

Кажется, что streamlit очень упрям, когда дело доходит до отображения IP-адреса, поскольку я настроил Nginx на отображение имени моего веб-сайта, но безрезультатно.


Не углубляясь слишком глубоко, есть ли какой-нибудь простой способ настроить streamlit отображение некоторой строковой информации или названия веб-сайта вместо голого IP 123.208.000:8502 -адреса рядом с символом блокировки «ваше соединение небезопасно»?

Ответ №1:

Внутри моего nginx conf у меня есть следующие строки:

 server {
    absolute_redirect off;
    listen 80 default_server;
    server_name my.domain.name.com;

    if ($http_x_forwarded_proto = "http") {
        return 301 https://my.domain.name.com$request_uri;
    }

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

Затем я запускаю свое приложение Streamlit со следующей командой:

 streamlit run my_app.py --server.port 8501 --server.baseUrlPath /my-streamlit-dashboard/ --server.enableCORS false --server.enableXsrfProtection false
 

В моем случае приложение доступно по адресу: https://my.domain.name.com/my-streamlit-dashboard /.