Предоставить доступ к шлюзу Kong API в настраиваемом домене /URL
Я настроил шлюз Kong API, следуя документации здесь . С помощью приведенной ниже команды curl я могу подтвердить, что Kong активирован и отвечает через localhost.
curl -i http://localhost:8001/services
HTTP/1.1 200 OK
Date: Thu, 13 May 2021 15:39:32 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: http://localhost:8002
X-Kong-Admin-Request-ID: xeUkwshQPRXA5T9bPQmxsmPcspJCGU2L
vary: Origin
Access-Control-Allow-Credentials: true
Content-Length: 23
X-Kong-Admin-Latency: 5
Server: kong/2.3.3.2-enterprise-edition
Мой вопрос для производства: как настроить Kong для ответа на DNS / URL?
Я настроил DNS-запись на AWS Route 53, чтобы направлять трафик на IP-адрес этого сервера, на котором развернут Kong. С автономным приложением - приложением Node / Express для exmaple, я бы настроил обратный прокси, то есть NGINX, для маршрутизации запросов, полученных на сервер от URL-адреса, к приложению. Однако, поскольку Kong является шлюзом API, это было бы неуместно.
Чтобы подвести итог;
- Я хочу сделать запрос API от клиента к шлюзу по адресу: http://my-gateway-url.com/service-name/route
- Этот запрос должен обрабатываться Kong и обрабатываться настроенной службой. Как мне настроить Kong для прослушивания на http://my-gateway-url.com ?
1 ответ
Если вы хотите выполнить маршрутизацию на основе хоста, это классическая функция .
Сначала создайте службу (ваше приложение узла):
Затем создайте маршрут:
Затем вы можете проверить соответствие маршрута
curl -i GET -H "Host: my-gateway-url.com" --header 'kong-debug: 1' 0.0.0.0:8000
curl: (6) Could not resolve host: GET
HTTP/1.1 502 Bad Gateway
Date: Thu, 13 May 2021 20:11:08 GMT
Content-Type: text/plain; charset=utf-8
Connection: keep-alive
Kong-Route-Id: 9f5584d7-4ac5-4720-a90c-f809c47faf8d
Kong-Route-Name: my_gw
Kong-Service-Id: 77443f69-80f4-49ea-b910-77eebdeb9385
Kong-Service-Name: node_app
Server: kong/2.0.3
Content-Length: 58
по сравнению с
curl -i GET --header 'kong-debug: 1' 0.0.0.0:8000
curl: (6) Could not resolve host: GET
HTTP/1.1 404 Not Found
Date: Thu, 13 May 2021 20:11:23 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Content-Length: 48
{"message":"no Route matched with those values"}