如何在AWS中设置人工高可用性集群?
如果您计划在AWS中设置Artifactory,那么您可以考虑使用我们的SAAS服务它在AWS/GCP/Microsoft Azure中提供。如果您选择自己设置Artifactory,那么下面是在AWS中设置Artifactory HA集群的示例:
人工安装设置:
我们建议在此设置中使用AWS中的Classic负载平衡器类型。
设置反向代理:
在下面的示例中,如果您注意到,我们已经为标题硬编码了一些值,并突出显示了这些条目。Nginx配置中的“server_name”将与ELB的CNAME相同,Nginx将在端口80上侦听。我们还硬编码了一些头,这样从Nginx到客户端的响应URL将与请求URL相同。请注意,在这个例子中,我们认为ELB正在处理HTTPS,并将请求转发给侦听端口80的Nginx。
在这个Nginx配置示例中,我们考虑将“myart.server.com”作为映射到ELB的CNAME。请将此值替换为您正在使用的CNAME。
这个Nginx配置被配置为使用子域方法访问docker存储库。使用子域方法的要求是具有通配符CNAME记录和CNAME的通配符SSL证书。SSL证书应该对通配符CNAME和常规CNAME都有效,例如(* .myart.server.com和myart.server.com)。通配符CNAME将用于docker请求,而常规CNAME将用于所有其他请求。SSL证书需要安装在AWS ELB中,下面是您需要创建的CNAME记录:
*.myart.server.com -> ELB端点
myart.server.com -> ELB端点
为Terraform部署, certificate_domain设置为“myart.server.com”,artifactory_server_name设置为“artifactory”。例如,如果您想访问artifactory,那么您将使用https://artifactory.myart.server.com。
###########################################################
这个配置是由JFrog Artifactory生成的
###########################################################
##服务器配置
服务器{
听80;
Server_name ~(?.+)\.myart.server.com;
如果($http_x_forwarded_proto = ") {
设置$http_x_forwarded_proto $scheme;
}
特定于应用程序的日志
## access_log /var/log/nginx/myart.server.com- access_log定时;
## error_log /var/log/nginx/myart.server.com-error.log
重写^/$ https://myart.server.com/artifactory/webapp/ redirect;
重写^ / artifactory ? (/ webapp) ?$ https://myart.server.com/artifactory/webapp/ redirect;
重写^ / (v1 | v2) / (. *) / artifactory / api /码头工人/ docker-local / 1 / 2美元;
chunked_transfer_encoding;
client_max_body_size 0;
地点/工厂/ {
proxy_read_timeout 900;
proxy_pass_header服务器;
proxy_cookie_path ~ * ^ /。* /;
If ($request_uri ~ ^/artifactory/(.*)$) {
proxy_pass http://localhost: 8081 / artifactory / 1美元;
}
proxy_pass http://localhost: 8081 / artifactory /;
proxy_set_header x - artifactory - overrides - base - url https://$host/artifactory;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header $http_host;
$proxy_add_x_forwarded_for;
}
}
AWS ELB:
的自定义基URL在Artifactory中需要设置为https://CNAME/artifactory。URL中的“CNAME”将是映射到AWS ELB的自定义域名。请注意,如果您将artifactory配置为以ROOT身份运行,则不需要自定义基URL中的上下文“artifactory”。
在人工HA集群中使用S3桶的binarstore .xml示例:
< !——S3二进制提供程序配置——>
<配置version = " 2 " >
<链>
> < /供应商
< / sub-provider >
> < /供应商
> < /供应商
< / >链
< maxCacheSize > 100000000000 < / maxCacheSize > < !缓存的最大大小(以字节为单位):100gig ->
缓存< cacheProviderDir > < / cacheProviderDir >
> < /供应商
< readBehavior > crossNetworkStrategy < / readBehavior >
< writeBehavior > crossNetworkStrategy < / writeBehavior >
<冗余> 1 > < /冗余
> < /供应商
当地<区> < /区>
> < /供应商
10 < maxTrys > < / maxTrys >
> < /供应商
<凭证> < /东西证书>
<标识> < / >身份的东西
端点> < s3.amazonaws.com > < /端点
< bucketName > mybucket < / bucketName >
真正< httpsOnly > < / httpsOnly >
<属性名= " s3service。disable-dns-buckets " value = " true " > < /属性>
<属性名= " httpclient。最大连接“价值= " 300 " > < /属性>
> < /供应商
<区>远程> < /区
> < /供应商
< / config >
