#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 /.