适用于私有云的 Edge v. 4.16.05
使用负载平衡器
API BaaS 的生产环境安装在 API BaaS 门户节点之间使用负载平衡器 和 API BaaS 栈节点在配置门户时,您需要指定 而不是堆栈节点的节点
您也可以使用轮循 DNS 来替代负载平衡器。在这种情况下 创建一个 DNS 条目,其中包含多条与 BaaS 栈 IP 地址对应的 A 记录。DNS 期间 DNS 服务器会自动以轮循方式返回 A 记录值。
连接到 Cassandra
安装 BaaS 时,您可以选择将 BaaS 和 Edge 连接到同一 Cassandra 集群, 或者为 BaaS 创建单独的 Cassandra 集群。更小的 BaaS 安装 通常与 Edge 共享 Cassandra 集群。
为实现高吞吐量和可用性,或者将 Cassandra 集群分隔到不同的 因此 Apigee 建议您使用单独的 Cassandra 集群。单独的集群 如果您在 BaaS 上遇到高流量负载,则可以最大限度地提升性能。
日期同步
您必须同步所有服务器上的日期/时间。如果尚未配置 “ntpdate”实用程序可以用于此目的,验证服务器是否 已同步。您可以使用“yum install ntp”来安装该实用程序。
Tomcat 安全性
API BaaS 安装程序还会在所有 API BaaS Stack 节点上安装 Apache Tomcat 服务器, 包括 Tomcat 管理员界面。安装程序保留默认管理员凭据 与 admin:admin 相比没有变化。
如有必要,您可以在保护 Tomcat 的过程中更改这些凭据。有关 信息,请参阅:
- https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
- https://www.owasp.org/index.php/Securing_tomcat
安装概览
在节点上安装 Edge apigee-setup 实用程序后,使用 实用程序在节点上安装一个或多个 BaaS 组件。apigee-setup 实用程序采用以下格式:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
将配置文件传递给 apigee-setup 实用程序,其中包含 有关安装的信息如果配置文件缺少任何必需的 apigee-setup 实用程序会提示您在命令行中输入代码。
唯一的要求是配置文件必须可供 “apigee”用户。例如,将文件放在节点上的 /tmp 目录中。
例如,使用以下命令安装 API BaaS 堆栈:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig
Apigee setup.sh 实用程序 支持多种 API BaaS 组件安装选项。以下说明使用 独立的选项(c、e、b 和 p),但您可以根据节点使用不同的选项 配置:
选项 |
说明 |
---|---|
e |
仅安装 ElasticSearch。 |
b |
仅安装 API BaaS Stack,这也会安装 Tomcat。 |
p |
仅安装 API BaaS 门户,这还会安装 Nginx 路由器以用作 Web 服务器。 |
c |
仅安装 Cassandra。 |
eb |
在节点上安装 ElasticSearch、API BaaS Stack 和 Tomcat。 |
ebp |
安装 ElasticSearch、API BaaS 门户、API BaaS Stack 和 Tomcat。传送门是这样 轻量级,无需额外的资源。 |
Asa |
在单个节点上安装所有 API 组件(Cassandra、Elasticsearch、API BaaS Stack、 和 API BaaS 门户)。此选项仅适用于开发和测试, 生产环境。 |
创建静默配置 文件
下面显示了一个 10 节点 API BaaS 安装的静默配置文件示例。修改 此文件以满足您的配置需要。使用 -f 选项通过 setup.sh 添加此文件。
# Specify IP address or DNS name of node. IP1=192.168.1.1 # ElasticSearch IP2=192.168.1.2 # ElasticSearch IP3=192.168.1.3 # ElasticSearch IP4=192.168.1.4 # API BaaS Stack IP5=192.168.1.5 # API BaaS Stack IP6=192.168.1.6 # API BaaS Stack IP7=192.168.1.7 # API BaaS Portal IP8=192.168.1.8 # Cassandra (shared with Edge or standalone) IP9=192.168.1.9 # Cassandra (shared with Edge or standalone) IP10=192.168.1.10 # Cassandra (shared with Edge or standalone) # Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost. HOSTIP=$(hostname -i) # Define the API BaaS administrator account. AS_ADMIN="superuser" # User name - default is "superuser". AS_ADMIN_EMAIL=stackAdmin@email.com AS_PASSWD=stackAdminPWrod # Only if you are installing Cassandra. # Specify Cassandra configuration information. # Must use IP addresses for CASS_HOSTS, not DNS names. # CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1" # If connecting to existing Cassandra nodes, # specify Cassandra IPs. # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP8 $IP9 $IP10" # Cassandra uname/pword. # Even if Cassandra authentication is disabled, # you must still pass values for these properties. CASS_USERNAME=cassandra # Default value CASS_PASSWORD=cassandra # Default value # Specify BaaS Cassandra connection information. # Specify the data center name. BAAS_CASS_LOCALDC=dc-1 # Default is dc-1. # Replication is in the form "dataCenterName:#CassandraNodes". # For example, for dc-1 with three Cassandra nodes, it is dc-1:3. BAAS_CASS_REPLICATION=dc-1:3 # ElasticSearch IPs or DNS names, separated by spaces. ES_HOSTS="$IP1 $IP2 $IP3" # API BaaS Stack information. # Default cluster name is "apigee_baas" BAAS_USERGRID_CLUSTERNAME="apigee_baas" # URL and port of the load balancer for the API BaaS Stack nodes, # or IP/DNS and port 8080 of a single Stack node with no load balancer. BAAS_USERGRID_URL=http://myloadbalancer:8443 # API BaaS Portal information. # URL and port number of load balancer, if there is one in front of the Portal, # or the URL and port of the Portal node. BAAS_PORTAL_URL="http://$IP7:9000" # Portal port. Default value is 9000. BAAS_PORTAL_LISTEN_PORT=9000 # SMTP information. BaaS requires an SMTP server. SMTPHOST=smtp.gmail.com SMTPPORT=465 SMTPUSER=your@email.com SMTPPASSWORD=yourEmailPassword SMTPSSL=y
下表包含有关这些属性的其他信息:
属性 |
备注 |
---|---|
CASS_HOSTS |
如果您要安装 Cassandra,请指定 Cassandra 节点 IP(而非 DNS 名称)并 添加“:dc,ra”修饰符,指定 Cassandra 节点。 例如,“192.168.124.201:1,1 = 数据中心 1 和机架/可用区 1”,以及 '192.168.124.204:2,1 = 数据中心 2 和机架/可用区 1。 |
CASS_USERNAME |
Cassandra 用户名和密码。 如果 Cassandra 身份验证已停用,您仍然需要传递这些值。不过, 这些值会被忽略。 |
BAAS_CASS_LOCALDC |
区域名称必须采用 dc-# 格式,其中 # 对应于一个整数值。 例如 dc-1、dc-2 等。如果您要连接到已安装的 Cassandra 集群 对于 Edge,您可以要求 Edge 系统管理员提供此值。在 Edge 单曲中 则默认值为 dc-1。 如果您在安装 API BaaS 的过程中安装了 Cassandra,那么 您向 Cassandra IP 地址添加了“:dc,ra”修饰符。 第一个值“dc”是数据中心编号。数据中心名称是字符串“dc-” 并以数据中心编号作为后缀 |
BAAS_CASS_REPLICATION |
格式为“dataCenterName:#CassandraNodes”。 例如,对于具有三个 Cassandra 节点的 dc-1,其优先级为 dc-1:3。 |
BAAS_USERGRID_URL |
在生产环境中,这是本地负载平衡器
API BaaS 堆栈节点前面,格式为: 在测试或开发环境中,您只有一个 API BaaS 堆栈 节点,可以是 API BaaS 堆栈节点的网址和端口号,格式为: http://stackIPorDNS:8080 API BaaS Stack 服务器的端口号为 8080。 |
BAAS_PORTAL_URL |
负载平衡器的网址和端口号(如果门户前面有负载平衡器)。
格式为: |
BAAS_PORTAL_LISTEN_PORT |
API BaaS Portal 服务器的端口号为 9000。如果此端口不可用, 指定其他端口 如果您将 BAAS_PORTAL_URL 设置为 门户节点,这两个媒体资源的端口号必须相同。 |
可选 - 安装 Cassandra:Machine 8、Machine 9 和 10
虽然您可以将 API BaaS 连接到 Edge 使用的 Cassandra 集群,但 Apigee 建议您使用单独的集群
Cassandra 集群可以使用身份验证,也可以停用 Cassandra 身份验证。请参阅 为以下账号启用 Cassandra 身份验证: 。
- 使用 或非互联网过程。如需了解更多详情,请参阅安装 Edge apigee-setup 实用程序。 。
- 在命令提示符下,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
“-p c”选项指定安装 Cassandra。
配置文件必须可供“apigee”访问或读取用户。例如,将 节点上 /tmp 目录中的文件。
配置会成功完成节点上的数据存储区设置。
请注意,Cassandra 默认启用 JMX。对 Cassandra 的 JMX 远程访问 需要密码。您可以将 Cassandra 配置为使用 JMX 身份验证。有关详情,请参阅 如何监控。
设置 Cassandra Cron 作业
设置一项使用 nodetool 刷新锁以每小时运行的 Cron 作业 每个 Cassandra 节点上运行。
如果您有多个 Cassandra 节点,请将每个服务器上的 Cron 作业偏移五分钟, 不会同时清空所有节点
Cron 作业必须执行以下命令:
/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks
其中 IP_address 是 Cassandra 节点的 IP 地址。IP_address
安装 ElasticSearch:机器 1、2 和 3
如需安装 ElasticSearch,请执行以下操作:
- 在使用互联网或非互联网的节点上安装 Edge apigee-setup 实用程序 过程。请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符下,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f 配置文件
“-p e”选项指定安装 ElasticSearch。
配置文件必须可供“apigee”访问或读取用户。例如,将 节点上 /tmp 目录中的文件。 - (可选)如果您在独立节点上安装 ElasticSearch,这意味着它未安装
,然后调整默认内存选项,以增加分配给
ElasticSearch 从 4GB 增加到 6GB:
<ph type="x-smartling-placeholder">
- </ph>
- 打开 /opt/apigee/customer/application/elasticsearch.properties 。如果此文件不存在,请创建它。
- 设置 setenv_elasticsearch_max_mem_size
属性设置为 6g(默认为 4g):
setenv_elasticsearch_max_mem_size=6g - 保存文件。
- 运行以下命令:
> /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch 重启
配置会成功完成节点上的设置。
安装 API BaaS 堆栈:机器 4、5 和 6
如需安装 API BaaS 堆栈,请执行以下操作:
- 在使用互联网或非互联网的节点上安装 Edge apigee-setup 实用程序 过程。请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符下,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f <配置文件>configFile
“-p b”选项指定安装 API BaaS 堆栈。
配置文件必须可供“apigee”访问或读取用户。例如,将 节点上 /tmp 目录中的文件。
安装程序提取正确的管理员凭据后,会安装 Tomcat 并创建 API BaaS 键空间,并在服务器上设置 API BaaS 堆栈。SMTP 也配置为允许 发送密码确认电子邮件的界面。
安装 API BaaS 门户:机器 7
如需安装 API BaaS 门户,请执行以下操作:
- 在使用互联网或非互联网的节点上安装 Edge apigee-setup 实用程序 过程。请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符下,运行设置脚本:
>/opt/apigee/setup/bin/setup.sh -p p -f 配置文件configFile
“-p p”选项指定安装 API BaaS 门户。
配置文件必须可供“apigee”访问或读取用户。例如,将 节点上 /tmp 目录中的文件。
安装程序启动 Nginx 网络服务器,然后完成 API BaaS 门户 配置。
记下 API BaaS 门户网址。这是您在浏览器中输入的网址,用于访问 API BaaS 门户界面。
为堆栈配置 API BaaS 节点 或门户负载平衡器
如果您在堆栈节点或门户节点前添加了负载平衡器,则必须配置 将节点替换为正确的负载平衡器网址例如,堆栈节点要求 信息:
- 在 BaaS API 请求的响应中包含网址。
- 在重置密码或发送其他电子邮件模板时,在电子邮件模板中添加链接。 通知。
- 将用户重定向到特定的门户页面。
如果您在堆栈节点前面使用负载平衡器,请在 /opt/apigee/customer/application/usergrid.properties:
usergrid-deployment_swagger.basepath=http://localhost:8080 usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw
将 http://localhost:8080 替换为加载网址的网址 进行负载均衡。如果负载平衡器配置为使用 TLS,请使用 HTTPS 协议。仅您本人 如果您使用的是非标准端口(即端口以外的其他端口),则需要包含该端口。 HTTP 为 80,HTTPS 为端口 443。
如果满足以下条件,您还必须在 /opt/apigee/customer/application/portal.properties 中设置以下属性: 您在堆栈节点前使用负载平衡器:
baas.portal.config.overrideUrl=http://localhost:8080
将 http://localhost:8080 替换为 进行负载均衡
如果您在门户节点前面使用负载平衡器,请设置以下属性 在 usergrid.properties 中:
usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000
将 http://localhost:9000 替换为 进行负载均衡器如果负载平衡器配置为使用 TLS,请使用 HTTPS 协议。您 只有在您使用非标准端口(也就是 HTTP 端口 80 和 HTTPS 端口 443
修改 usergrid.properties和 portal.properties 后:
- 配置堆栈节点:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure - 将更改部署到 Tomcat:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid 部署 - 重启 BaaS 堆栈:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - 如果您修改了 portal.properties,请配置
门户节点:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - 部署更改:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal 部署 - 重启 BaaS 门户:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart
新组织入职培训
入职培训是创建组织和组织管理员的过程。更新后 创建组织和组织管理员,则可以登录 API BaaS 门户 然后向 API BaaS REST API 发出请求。
创建组织时,组织管理员的电子邮件地址:
- 必须不同于系统管理员的电子邮件地址。
- 在所有其他组织中必须是唯一的。也就是说,您不能创建两个组织 与组织管理员相同的电子邮件地址。不过,在创建 您可以添加其他管理员,以便 组织。
要执行初始配置,请使用 create_org_and_user.py Python 脚本。 在不使用命令行参数的情况下调用此脚本会导致它提示您输入所有 信息:
> python create_org_and_user.py
或者,您也可以将任意或所有选项作为命令行参数传递。系统会提示您 从命令行省略的任何信息:
> python create_org_and_user.py -o '<org name>' > python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'
如需创建组织,请执行以下操作:
- 将目录更改为 /opt/apigee/baas-usergrid/bin。
- 调用 create_org_and_user.py Python 脚本。
系统会提示您输入 BaaS 系统管理员用户名和密码,以便系统 管理员即可运行 - 在网络浏览器中,使用您在
API BaaS 门户网址安装。如需访问该门户,请在此输入
格式如下:
http://{portalExternalIP}:9000/
注意:IP 是门户机器的外部 IP 地址/主机名。确保 该端口已打开 - 门户登录屏幕出现时,您可以执行以下任一操作:
<ph type="x-smartling-placeholder">
- </ph>
- 使用组织管理员的用户名和密码登录。
- 使用系统管理员的用户名和密码登录。
访问 API BaaS REST API
如需访问 API BaaS REST API,请使用以下形式的网址:
https://{loadBalancerIP}:8080/{your-org}/{your-app}
在开发环境中,您可以在单个节点上安装所有 API BaaS 组件, 这意味着你只有一个 API BaaS 堆栈。或者,您可能有一个小型环境 API BaaS 栈节点,没有负载平衡器。在这类环境中 直接提交到 API BaaS Stack 节点:
curl -v "http://portalExternalIP:8080/status"
如需详细了解如何开始使用 API BaaS 门户,请参阅 Apigee 文档: http://apigee.com/docs/content/build-apps-home.