Развертывание и маршрутизация приложений Dash на железной дороге с использованием Nginx в качестве обратного прокси-сервPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Развертывание и маршрутизация приложений Dash на железной дороге с использованием Nginx в качестве обратного прокси-серв

Сообщение Anonymous »

Я разработал веб-приложение на основе Plotly's Dash на Python.
App1: аутентификация, обеспечивает аутентификацию и регистрацию пользователей.
App2: Quickbio — приложение для обработка биологических данных.
Каждое приложение представляет собой автономное приложение Dash, то есть имеет собственную конфигурацию:
app = dash.Dash(...)

Мне удалось взаимодействовать между обоими приложениями с помощью Nginx следующим образом:
Я развертываю приложение1.
Я развертываю приложение2.Я маршрутизирую их с помощью обратного прокси-сервера с Nginx в одном домене, связывая оба независимых приложения.
Я хотел бы знать следующее: возможно ли это сделать? изначально на железной дороге?
Я видел, что вы можете развертывать независимые приложения из GitHub. Перейдя в «Новый проект» и добавив туда каждый репозиторий. Итак, оттуда мне придется создать третий «репозиторий/скрипт», который отвечает за присоединение приложений аналогично имеющемуся у меня скрипту Nginx или может это можно сделать с помощью Railway?
Что касается затрат, насколько это будет отличаться от создания мной контейнера Docker, в котором все работает как монолит с уже имеющейся у меня маршрутизацией?
Я заинтересован в том, чтобы все было отдельно (как микросервисы), потому что, если мне нужно будет добавить новые функции, мне нужно будет только обновить код GitHub, а Railway позаботится обо всем остальном, а я более реальное разделение, чем размещение всего кода в одном контейнере Docker.
Мне хотелось бы знать, есть ли другие известные вам варианты, спасибо за помощь!
Есть фрагмент кода о том, как я обрабатываю обратный прокси-сервер с помощью nginx
def generate_nginx_config(modules: List[ModuleType]) -> str:
config = """
server {
listen 80;
server_name localhost;
"""

for module in modules:
module_name = get_module_name(module)
port = get_app_port(module)
prefix = get_app_prefix(module)
if port is None or prefix is None:
print(f"Error: No se pudo obtener el puerto o prefijo para {module_name}")
continue

config += f"""
location {prefix} {{
proxy_pass http://localhost:{port};
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;
}}
"""

print(f"Ruta de Nginx para {module_name}: http://localhost{prefix}")

config += "}\n"

config_path = os.path.expanduser("~/dash_apps_nginx.conf")
with open(config_path, "w") as f:
f.write(config)

print(f"Configuración de Nginx generada en {config_path}")
return config_path


Подробнее здесь: https://stackoverflow.com/questions/788 ... erse-proxy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»