Мне нужно конвертировать EPP (протокол сеанса — https://tools.ietf.org/html/rfc5734) к протоколу HTTP на основе запросов / ответов (JSON). Часть JSON уже написана и работает с несколькими клиентами.
Я смотрел на nginx с помощью веб-сокетов, но веб-сокеты кажутся слишком высокими для необработанного протокола EPP.
Мне нужно решить следующий процесс:
Есть ли рекомендуемые технологии в nginx для достижения этой цели? Я могу кодировать сервер сокетов PHP без особых хлопот.
Итак, вы строите сервер EPP? Добро пожаловать в мир EPP от кого-то, кто находится в нем с самого его рождения или даже раньше 🙂
EPP — это «простой» протокол, использующий XML по TLS (как правило, существуют некоторые случаи по HTTPS, и в течение периода разработки они представляли другие предложения, например, по SMTP или BXXP).
Таким образом, как сервер вам нужно что-то, способное обрабатывать завершение TLS и читать XML. Это возможно на любом языке, и это не ракетостроение. Конечно, дьявол кроется в деталях. И вы не предоставляете достаточно деталей / контекста, чтобы точно определить, какие у вас могут быть ограничения или конкретные проблемы.
Так что вы можете быть немного не в теме здесь, потому что написание простого сервера, обрабатывающего TLS и чтение XML, должно быть показано здесь как код, если вы хотите, чтобы люди помогали вам.
Пожалуйста, не забудьте прочитать RFC 5734 несколько раз о конкретных транспортных соображениях. Вам, конечно, нужно помнить, что это протокол с отслеживанием состояния, поэтому, если вы «перенаправляете» запросы внутренне по протоколу без сохранения состояния, вам потребуется выполнить некоторую аутентификацию.
Вам не нужны веб-розетки, на самом деле я не понимаю, почему вы говорите о них. Вам просто нужно завершение TLS, а не HTTPS.
Посмотри на HAProxy это популярный обработчик подобных вещей.
Но опять же, исходя из ваших конкретных (неизвестных) ограничений (особенно количества клиентов, объема запросов, необходимых соглашений об уровне обслуживания и т. Д.), Что-то такое простое, как stunnel
Может быть достаточно.
Обратите внимание, что у вас есть mod_epp для Apache. Может быть, не очень жить, но может дать вам идеи. Это позволяет использовать любую CGI-программу под Apache, когда сервер получает фактически кадры EPP, а не HTTP.
В качестве дополнительного примечания, помимо безопасности (но это должно охватываться RFC5734), я бы рекомендовал вам быть осторожным с кодировками, пространствами имен XML и избегать использования нескольких механизмов сериализации в одном потоке (JSON внутри XML — плохая идея, как и XML внутри JSON, но я не знаю точно, как работает ваша часть «convert»).
Других решений пока нет …