Какой порт я должен настроить для прослушивания службы?

Я хочу создать веб-сайт, который будет больше похож на веб-приложение. Будет две части: внешний интерфейс (вероятно, на PHP, Apache) и внутренние службы (на Python, с использованием Twisted). Внешний интерфейс обычно предоставляет некоторый JavaScript, который будет отправлять Ajax-запросы к службам Python и получать данные обратно.

Поскольку Apache будет прослушивать порт 80, службы Python должны прослушивать другой порт.
Итак, мой вопрос заключается в следующем: какой порт должны прослушивать службы Python? Я спрашиваю, потому что боюсь, что это может быть заблокировано прокси, брандмауэрами и т. д., которые не так уж редко встречаются на пути клиента.

Каким будет самый стандартный и беспроблемный способ сделать это?


person Alexandros    schedule 25.02.2011    source источник
comment
Самым стандартным способом было бы использовать mod_wsgi и поручить apache обрабатывать все это.   -  person Wooble    schedule 25.02.2011
comment
Будут ли и mod_wsgi, и mod_php работать одновременно? Как Apache сможет различать, какие запросы следует отправлять на php, а какие — на wsgi?   -  person Alexandros    schedule 25.02.2011


Ответы (4)


Обычный выбор — http-alt(8080).

person Ignacio Vazquez-Abrams    schedule 25.02.2011

Вас могут заблокировать все и везде. Любой необычный порт, скорее всего, будет заблокирован серьезными настройками брандмауэра. Либо получите выделенный IP-адрес и прослушивайте порт 80. Лучше всего поговорить с ребятами из вашей ИТ-сети.

person Andreas Jung    schedule 25.02.2011

Если вы собираетесь распространять это, вам придется использовать порт выше 1024, иначе людям, использующим его в системе типа Unix, придется запускать его как root, что открывает очень большую банку червей до безопасность беспокоит.

person Marc B    schedule 25.02.2011

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

Если вы имеете в виду отсутствие проблем для ваших пользователей, порты 80 (http) и 443 (https) — единственные варианты, которые имеют смысл, поскольку они с наименьшей вероятностью будут заблокированы брандмауэрами. Конечно, это означает, что ваше приложение и веб-служба будут совместно использовать порт, поэтому вам придется запускать свой код Python за Apache или чем-то еще, обслуживающим ваш PHP-код и статические файлы. Вы замужем за Твистедом? Почему бы не создать веб-службу Python с помощью одной из многих WSGI-совместимых веб-инфраструктур и не подключить ее к Apache с помощью mod_wsgi?

person ʇsәɹoɈ    schedule 25.02.2011
comment
я замужем за Twisted? это далеко не так :) Я сейчас только в фазе изучения. Мне нужен быстрый способ создать веб-приложение Python без сохранения состояния, и Twisted, похоже, соответствует этому требованию. Я мог бы также попробовать другой подход, и я открыт для всех ценных идей stackoverflows. - person Alexandros; 26.02.2011