【问题标题】:clustering wso2 api manager gateway集群 wso2 api 管理器网关
【发布时间】:2016-06-21 08:58:00
【问题描述】:

我正在尝试使用此处的教程将 wso2 api manager 1.10 网关集群到 3 个主机:https://docs.wso2.com/display/CLUSTER44x/Clustering+the+Gateway,但其中一些步骤令人困惑。 据我所知,wso2 api manager 有两个传输,即

1.) servlet 传输 (tomcat) 位于端口 9443 (https) 和 9763 (http),用于提供碳相关服务

2.) PTT/NIO 传输 (axis2) 位于端口 8243 (https) 和 8280 (http),用于为部署工件的请求提供服务。

我从教程中不明白的是:

1.) 为什么网关管理器组件的集群配置(位于axis2配置中)要有端口映射?

<parameter name="properties">
    <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
    <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
    <property name="subDomain" value="mgt"/>
    <property name="port.mapping.80" value="9763"/>
    <property name="port.mapping.443" value="9443"/>
</parameter>

它不是已经在负载均衡器(nginx)配置中定义了吗

server {
    listen 443;
    server_name mgt.am.wso2.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/mgt.crt;
    ssl_certificate_key /etc/nginx/ssl/mgt.key;

    location / {
               proxy_set_header X-Forwarded-Host $host;
               proxy_set_header X-Forwarded-Server $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header Host $http_host;
               proxy_read_timeout 5m;
               proxy_send_timeout 5m;
               proxy_pass https://xxx.xxx.xxx.xx3:9443/;
        }
    error_log  /var/log/nginx/mgt-error.log ;
    access_log  /var/log/nginx/mgt-access.log;
}

在tomcat配置中?

<Connector  protocol="org.apache.coyote.http11.Http11NioProtocol" port="9763" proxyPort="80" ... />
<Connector  protocol="org.apache.coyote.http11.Http11NioProtocol" port="9443" proxyPort="443"/>

2.) 为什么网关工作程序的负载平衡器配置使用 servlet 端口?不应该是 PTT/NIO 端口吗? (因为网关工作人员用于为部署工件提供请求)

upstream wso2.am.com {
        sticky cookie JSESSIONID;
        server xxx.xxx.xxx.xx4:9763;
        server xxx.xxx.xxx.xx5:9763;
}

server {
        listen 80;
        server_name am.wso2.com;
        location / {
               proxy_set_header X-Forwarded-Host $host;
               proxy_set_header X-Forwarded-Server $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header Host $http_host;
               proxy_read_timeout 5m;
               proxy_send_timeout 5m;
               proxy_pass http://wso2.am.com;
        }
}

upstream ssl.wso2.am.com {
    sticky cookie JSESSIONID;
    server xxx.xxx.xxx.xx4:9443;
    server xxx.xxx.xxx.xx5:9443;
}

server {
listen 443;
    server_name am.wso2.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/wrk.crt;
    ssl_certificate_key /etc/nginx/ssl/wrk.key;
    location / {
               proxy_set_header X-Forwarded-Host $host;
               proxy_set_header X-Forwarded-Server $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header Host $http_host;
               proxy_read_timeout 5m;
               proxy_send_timeout 5m;
               proxy_pass https://ssl.wso2.am.com;
        }
}

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:
    1. API Manager 中有两个传输端口,PTT 和 servlet。当请求进入 API 管理器时,它总是转到默认传输,即 PTT/NIO 传输。 当调用管理服务(例如:发布 API)时,您发送一个 servlet 请求。如果在 manager 节点中不指定端口映射参数,会命中 PTT/NIO 传输,请求会失败。

    2. 在这里,它指定了负载平衡器配置的常见示例。您的配置需要根据网关工作人员进行更改。

    【讨论】:

    • 嗨,感谢您的回复,但我仍然很困惑 1.) 据我所知,PTT/NIO 传输位于端口 8280 和 8243,而管理控制台端口位于 9443 和 9763,如果我们在 nginx 中设置了这样的代理传递,'proxy_pass xxx.xxx.xxx.xx3:9443',请求如何传递到 PTT/NIO 端口?
    • 它是在axis2.xml上设置的,而不是在nginx中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多