Почему WSO2 API Manager вызывает конечную точку зарегистрированного HTTPS API, используя 8243 вместо 443? Я не могу добраться до моего последнего служения - PullRequest
0 голосов
/ 28 февраля 2020

Я обнаружил следующую проблему с WSO2 API Manager (я работаю над версией WSO2 API Manager 6.2.0).

Я опубликовал API на портале издателя. Этот API ожидает запрос POST по протоколу HTTPS и принимает в качестве тела запроса полезную нагрузку JSON.

Проблема заключается в том, что опубликованный API генерирует запрос cURL например:

curl -k -X POST "https://MY_SERVER:8243/puntualitest/v1.0.0/puntuali" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"header\": { \"msgUid\": \"a36bea3f-6dc6-49d7-9376-XXXXXXX\", \"timestamp\": 1567060509108, \"metadata\": { \"TRACKER_BIZID_REV_CODICE\": \"7175\", \"TRACKER_BIZID_REV_NUMERO\": \"545/2019\" }, \"codApplication\": null, \"codEnte\": null, \"invocationContext\": null, \"caller\": \"SRW\", \"user\": null, \"service\": \"crediti.invioPosizioneCreditoria\" }, \"body\": { \"@dto\": \"binary\", \"content\": \"PD94bWwgdmVyc2lvbj..............+\" }}"

Проблема в том, что, как вы можете видеть, он пытается вызвать конечную конечную точку на порту 8243 вместо ожидаемого 443 * Порт 1017 *, который является стандартным HTTPS портом.

Таким образом, этот вызов заканчивается Ошибка соединения Сообщение об ошибке, поскольку конечная точка прослушивает 443 , а не 8243 .

Итак, у меня есть несколько вопросов:

  1. Почему WSO2 API Manager пытается вызвать конечную конечную точку на 8243 , а не на 443 * Порт 1037 *, если выбран протокол HTTPS , который, теоретически, работает на 443 ?

  2. Есть ли способ установить последний конечный порт, который необходимо использовать: 443 ?

Спасибо

1 Ответ

2 голосов
/ 28 февраля 2020

Если вы берете производственный пример, ваши шлюзы открываются через балансировщик нагрузки, и он выставляется в порту 443. От lb вы можете балансировать нагрузку до 8243 серверов шлюзов. Вы можете обратиться к [1] ​​для настройки балансировщика нагрузки.

Если хотите, вы можете изменить порты 8280 и 8243. Для этого вы можете изменить их в файле axis2. xml, который находится в репозитории / расположение conf / axis2.

<transportReceiver name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpListener">
        <parameter name="port" locked="false">8280</parameter>
        <parameter name="non-blocking" locked="false">true</parameter>
        <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
        <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
        <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.mediation.transport.handlers.PassThroughNHttpGetProcessor</parameter>
        <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
    </transportReceiver>

В значении порта вы можете изменить это значение на 80, и аналогичное определение можно найти для https для порта 8243.

[1] - https://docs.wso2.com/display/AM210/Configuring+the+Proxy+Server+and+the+Load+Balancer#ConfiguringtheProxyServerandtheLoadBalancer -Step2-Configuretheloadbalancer / reverseproxyserver

...