2016-02-19 4 views
1

Я пытаюсь сделать прокси-сервер с использованием WSO2 ESB для использования таких сервисов, как «services/UserIdentityManagementAdminService? Wsdl» и scim, как «« wso2/scim/Users »в wso2 IS (я хочу сбалансировать а находится в ГА с HTTPS адрес конечной точки), у меня есть прокси-сервер, и я могу потреблять SCIM, но когда я пытаюсь получить WSO2 WSDL ESB просто послал журнал как:WSO2 ESB Proxy to IS

INFO {org.apache.synapse.mediators .builtin.LogMediator} - Кому:/services/PRX_SC_IS_SERVICES/services/UserInformationRecoveryService? wsdl, MessageID: urn: uuid: 10516b34-8004-4c70-9d4c-61957e4d9147, Направление: запрос, Конверт: {org.apache.synapse.mediators .builtin.LogMediator}

Я думаю, что проблема в том, что в URL-адресе используются службы после имени прокси-сервера, потому что, когда я вызываю другой URL-адрес, у меня не проблема.

My Proxy Config:

<proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="PRX_SC_IS_SERVICES" 
    transports="http" 
    statistics="disable" 
    trace="disable" 
    startOnLoad="true"> 
<target> 
    <inSequence> 
     <property xmlns:ns="http://org.apache.synapse/xsd" 
       name="Authorization" 
       expression="fn:concat('Basic ', base64Encode('admin:admin'))" 
       scope="transport"/> 
     <send> 
      <endpoint key="IS_EP_HTTPS"/> 
     </send> 
    </inSequence> 
    <outSequence> 
     <send/> 
    </outSequence> 
</target> 
<description/> 

ответ

0

С WSO2 вы не можете сделать общий прокси-сервер, и вы не можете использовать услуги слово после имени прокси-сервера. Самый простой способ сделать это установить Nginx и использовать его как прокси реверс с конф, как это:

upstream https.is{ 
     server IP_IS01:9446; 
     server IP_IS02:9446; 
    } 

    server { 
     listen  8443 ssl; 
     server_name IP_HOST; 

     ssl_certificate  ssl.crt; 
     ssl_certificate_key ssl.key; 

     location/{ 
       proxy_pass    https://https.is/; 
       proxy_set_header  Host $http_host; 
     } 
    } 

Другое дело, что вы можете сделать, это движение в ESB контекстные услуги (axis2.xml и углерода .xml) в другой контекст и развернуть два API, которые переписывают контекст/services и/wso2/scim, потому что теперь службы прокси-сервера должны быть перенаправлены на другой контекст и, например,/services/UserAdmin на IS wsdl. Пример API:

<resource methods="POST" uri-template="/PRX*"> 
    <inSequence> 
    <send> 
     <endpoint> 
      <address uri="http://HOST_ESB:PORT_ESB/newservicescontext/"></address> 
     </endpoint> 
    </send> 
    </inSequence> 
    <outSequence> 
    <send></send> 
    </outSequence> 

Смежные вопросы