Problem

The addresses within the WSDL returned by GetCapabilities in Geographic Information System services need to be migrated to Apinizer

Reason/Cause-
Solution

If the value 'GetCapabilities' in the 'request' key as a query parameter comes in the URL, it should be replaced with the corresponding address in Apinizer using a Business Rule or Script policy to be added to the second region.

Problem

Seeing the client IP address in the format 10.244.x.x

Reason/Cause

In the Kubernetes NodePort structure, if the X-Forwarded-For value is not coming from the client, it defaults to forwarding the pod's IP address to the backend application. As a solution, setting the externalTrafficPolicy value to Local can resolve the issue. However, this leads to accessibility problems because NodePort doesn't route the incoming request to other servers in the cluster. You need to know the specific Node to access it.

Solution

Since Apinizer Workers will be placed behind a structure like Nginx or F5, the configuration file of the relevant load balancer needs to include adding the xff information to the header, as shown below.


# For Nginx, the configuration can be done as follows:

location /apigateway/ {

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://api.inst.com/apigateway/;
} # end location

Problem

Not displaying/transferring headers containing underscores in API Traffic Logs

Reason/Cause

This issue is not directly related to Apinizer but is related to the default settings of Nginx, which might be used in front of Apinizer.

Nginx is commonly used as a web server and reverse proxy server. However, in the default configuration of Nginx, HTTP headers with underscores (_) in their names are not processed and passed. This is due to underscores not being standard in the HTTP RFC.

Solution

To resolve this issue, you should set the underscores_in_headers directive to on in the Nginx configuration file. This allows Nginx to correctly handle headers containing underscores.


vi /etc/nginx/nginx.conf

http {

underscores_in_headers on;

}


for ingress;


apiVersion: v1

kind: ConfigMap

metadata:

  name: nginx-configuration

  namespace: ingress-nginx

  labels:

    app: ingress-nginx

data:

  enable-underscores-in-headers: "true"