I am setting up a WSO2 docker. I am using the WSO2 Dockerfiles from github (https://github.com/wso2/docker-apim) an the latest WSO2 Api Manager version (2.10). The Installation has succeeded, so I started the docker container. WSO2 starts up and I was able to deploy a Swagger URL based API.
I am also able to access the API through the store interface. And here starts my trouble: When I am trying to test the API through the integrated Swagger UI, the API manager is making use of the internal docker IP:
I have set up this port configuration:
How can I force WSO2 Api Manager to use the Docker public IP?
Many thanks :-)
In the repository/conf/api-manager.xml you can find following element
APIGateway/Environments/Environment/GatewayEndpoint
If you have multiple gateways, you may want to create an HTTP(S) load balancer.
Related
How to connect a server that run wso2 API manager to show statics on a server that run wso2 analytics that actually exist on differnt servers with different IP.
I am using version 3.2.0
You can follow the documentation and configure analytics for APIM 3.2.0.
In the configurations, instead of using localhost, use the IP address of the analytics server.
https://apim.docs.wso2.com/en/3.2.0/learn/analytics/configuring-apim-analytics/#configuring-apim-analytics
I like to installing wso2 api manager in a cluster.Is it possible to create two api manager server in same cluster.
You can configure 2 API Manager nodes in Active-Active. Both starts accepting traffic routing, API creation, etc.
Please refer -
https://apim.docs.wso2.com/en/latest/install-and-setup/setup/single-node/configuring-an-active-active-deployment/#configuring-an-active-active-deployment
I've installed WSO2 Api Manager 4.0.0 on internal server and I have no idea how to tell it to use proxy server to connect to Choreo analytics.
I see following error in the log:
:Provided authentication endpoint https://analytics-event-auth.choreo.dev/auth/v1 is not reachable.
I've tried to set http_proxy, https_proxy, HTTP_PROXY and HTTPS_PROXY environment variables with flag java.net.useSystemProxies=true to api_manager.sh but they seem to not work and I don't see any traffic coming from this server through proxy.
Adding java flags http.proxyHost and http.proxyPort didn't helped too.
If I start it from server with internet access then it works just fine with Choreo.
Is there any way to set the proxy for APIM?
WSO2 API Manager's gateway component talks to an API in the Analytics cloud in order to fetch required credentials to publish events to the cloud. The failure that you have pointed out occurs at the point of talking to this API. It appears that proxy settings have not been configured for this particular HTTP client. Please see here.
Event publishing is the next step and uses AMQP protocol. Therefore I think it would not go through the HTTP/S proxy. However, if the gateway has no access to the internet, this step will fail again regardless of the API call is fixed to honour the proxy settings.
Currently, analytics does not have the support to publish events through a proxy. It seems that in order to honour proxy settings in event publishing, the protocol needs to be changed to Websocket.
Does the Micro Gateway and API manager always have to be installed on the same servers?
Does the Micro Gateway setup require WSO2 Identity Server and WSO2 Enterprise Integrator for Hybrid API?
We have an architecture that would be working with 3 servers (1) Cloud for API Manager and Developer Portal providing Authentication and Analytics and store for (2) Production Environment (3) Sandbox Environment
Does the API manager needs to be installed in all the servers to set API Gateway and API Micro Gateway?
So here are the task that I have tried to set the WSO2 API manager and the Micro Gateway services in my local system , so here is a sample configuration
OS: Ubuntu server 18 LTS
WSO2 API Manager - Local Server IP: 192.168.1.50
WSO2 MicroGateway service (Sandbox) - Local Server IP: 192.168.1.51
WSO2 MicroGateway service (Production) - Local Server IP: 192.168.1.52
API Manager:
Installed all prerequisites
Install directly in the server
Changed the hostname to IP address in deployment.toml since I tried changing in carbon.xml and api-manager.xml but it get override
All the services were successfully active
Carbon Admin - http://192.168.1.50:9443/carbon, Admin Module - http://192.168.1.50:9443/admin, Developer Portal - http://192.168.1.50:9444/devportal, Publisher - http://192.168.1.50:9443/publisher
MicroGateway:
Create a mock hello world API using PHP to access the backend and datastore services.
Created a sample OpenAPI 3.0 yaml file to forward the request to the backend php services.
Installed all prerequisites
I had document to install the Microgateway services in docker, but I decided to try the MGW services installation directly within the server without docker
Created a API using micro-gw init and placed the yaml file within api-definitions
created the build successfully
Ran the build using gateway which was accessible using Postman.
Tried to change the hostname of microgateway service to listen IP instead of localhost but gets overrides to localhost:9090 however the service can be accessible using IP so no further changes made.
Configuration of API Manager and MGW
Uploaded the same YAML to API manager using publisher to configure the API manager and microgateway services.
Used API managers key certificates to set the microgateway (which failed)
create the end points to point to Production and Sandbox micro gateways using the IP address and the port number http://192.168.1.51:9090 and http://192.168.1.52:9090
Accessed the developer portal, created a token key.
However, the token failed to help access the microgateway service. Even I tried using the URL provided by the API manager http://192.168.1.50/sample/context/1/test but still inaccessible.
Is there support for Azure integration to deploy and manage WSO2 products, specificaly Elastic Load Balancer. I am also curious if JCloud and Apache Stratos support Azure as an IAAS ?
Thanks
--Mahesh
jclouds Azure support is in the works and scheduled to be released with version 2.0. You can track progress here: https://issues.apache.org/jira/browse/JCLOUDS-664
Once jclouds starts support Azure, this will indeed add Azure support in Apache Stratos, WSO2 Private PaaS, WSO2 App Factory - since these rely on jclouds for IaaS support.
For other WSO2 products, if you do not need the IaaS support and just want to deploy them on VMs in Azure (without autoprovisioning, autoscaling, etc.) you might be able to do so already. I have not tried using Azure ELB specifically but have configured WSO2 stuff with various different load-balancers (WSO2 ELB, AWS ELB, nginx, etc.) and they worked. So Azure ELB might as well, if not - you can probably run nginx in Azure just fine too.