Запуск нескольких серверов Python на разных отображениях URL


1

Python позволяет мне создавать и запускать приложения на любом выбранном мной порту, но как мне обрабатывать несколько таких приложений вместе, чтобы конечный пользователь мог различать только по URL? В основном то, что я хочу, это:

Host        Port     Default URL              Expected URL
localhost   5000     http://localhost:5000    http://localhost.com/app1
localhost   6000     http://localhost:6000    http://localhost.com/app2
localhost   7000     http://localhost:7000    http://localhost.com/app2

Я думаю, что это было бы довольно легко, если бы я использовал Apache2 (виртуальные хосты, верно?), Но как я могу сделать это без Apache2?

Ответы:


1

Вы можете запустить обратный прокси-сервер nginx. https://www.nginx.com/resources/admin-guide/reverse-proxy/

Пользователи переходят на любой порт, на котором работает nginx, и указывают местоположение GET, например / app1 или / app2. nginx проанализирует местоположение GET, выяснит, к какому приложению оно должно обращаться, и передаст весь запрос и его заголовки соответствующей службе, работающей на localhost: [your-apps-port]


Хм, так что мы вернулись к использованию существующего сервера. Спасибо, в любом случае!
dotslash 12.12.15

Не волнуйтесь, это довольно типично в наши дни - это повышает как производительность (с помощью кэширования), так и безопасность для запуска обратного прокси-сервера, и это действительно помогает хранить все ваши настройки сети в одном месте. Трудно выучить совершенно новые функции / умные слова новой программы, но для nginx / squid / etc я бы сказал, что оно того стоит.
JJ

1
Честно говоря, я очень мало знаю о серверах, но ваш ответ указал мне правильное направление. Я только что натолкнулся на статью о DigitalOcean, в которой говорится, что Apache и Nginx можно настроить вместе! Еще раз спасибо, и если я застряну, я отправлю еще один вопрос здесь. :-)
dotslash 12.12.15
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.