Что дает шлюз?
- Единый вход
- обратный прокси
- веб сервер
- Перехват интерфейса
Это мои потребности, в соответствии с проектом достигнута функциональность, последующая деятельность может быть расширена несколькими другими функциями:Серый выпускЖдать.
задний план
Чтобы предотвратить междоменное взаимодействие в среде разработки, в веб-пакет будет добавлена конфигурация proxyTable, которая действует только в среде разработки. Подождите, пока производственная среда запустится отдельно.ExpressСервис предоставляет статические веб-ресурсы и proxyTable.
Иными словами, каждое приложение будет иметь службу Express.Когда приложений слишком много, это не способствует управлению и затрудняет развертывание.
Как мне добиться
промежуточное программное обеспечение для сервиса яиц
cors Middleware
egg-corsПлагин имеет встроенное промежуточное ПО, которое используется для поддержки обработки междоменных запросов.
static Middleware
egg-staticПлагин имеет встроенное промежуточное ПО, которое используется для предоставления статических ресурсов внешнему миру.
multiApplicationStatic Middleware
egg-multi-application-staticСопоставьте различные пути к статическим ресурсам для нескольких приложений. использоватьkoa-staticРеализация плагина и будет упакована как плагин
- префикс доменного имени
- dir статический путь входа
Анализ исходного кода
-
Элементы конфигурации хода
-
Выньте исходное доменное имя и сравните префикс элемента конфигурации
Удовлетворение: извлеките каталог элемента конфигурации, чтобы сгенерировать промежуточное программное обеспечение, предоставляющее службы статических ресурсов, и вернуть его.
Не удовлетворено: вернуться к следующему()
-
Используйте функцию инструмента компоновки, чтобы сформировать вызов луковичного кольца и вернуться
bodyParser Middleware
Параметры в теле запроса будут проанализированы и добавлены в объект запроса,当经过该插件解析后的请求再做proxy时可能会丢失post参数
, так вот过滤
один раз:
Если путь доступа маршрутизируется самим шлюзом, разрешите его, в противном случае пропустите
需要注意该中间件的顺序,当post请求被该中间件处理后,再做proxy可能会丢失参数
securities Middleware
egg-securityПредотвращение и обработка XSS (межсайтовых сценариев).
permissions Middleware
Проверьте токен и обновите его.
Анализ исходного кода
- имеет токен
- Убедитесь, что токен действителен, если он недействителен, верните 401
- Путь запроса
/gateway/login
или/
Напрямую跳回refererS
адрес или подскажите已登录,refererS不存在
- Обновить время действия cookie.refererS
- Обновить время действия cookie.token
- нет токена
- Зарегистрирован ли исходный домен, если нет, он вернет 401
Application not register!
- Путь запроса
/gateway/login
Request path not authorized!
- Зарегистрирован ли исходный домен, если нет, он вернет 401
- Если вышеуказанный процесс не имеет возврата, верните функцию next()
proxy Middleware
противconfig.proxy
Имя домена и путь, настроенные в обратном прокси-сервере.
Сначала определяет, является ли Configning Config домена исходного кода .proxy, если условие выполняется в конфигурации домена, с помощьюhttp-proxy-middleware,koa-connectПлагины для проксирования и ответа.
Процесс разбора запроса
- Введите промежуточное ПО multiApplicationStatic, чтобы определить, является ли он статическим ресурсом.
- Войдите в промежуточное ПО разрешений, чтобы проверить, является ли токен законным.
- Войдите в промежуточное ПО прокси и перенаправьте запрос в соответствии с конфигурацией config.
- Передано яйце-маршрутизатору
PS
Папа, пожалуйста, распыли, Из примечания вы можете это понять.