Я разработал веб-приложение на основе 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
Развертывание и маршрутизация приложений Dash на железной дороге с использованием Nginx в качестве обратного прокси-серв ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение