2016-08-30 33 views
0

我们正在试图建立artifactory的版本4.11.1内的码头工人库的子域,下面是建立配置泊坞窗库中artifactory的

-- Created a local docker repo - docker-local 
-- Created a virtual dokcer repo - docker-virtual 
-- Created a remote docker repo - docker-hub 
-- Configured docker-local to be the default deployment repo 

我们使用的是支持反向多域证书proxy.company.com和docker-virtual.reverse-proxy.company.com

问题是 应该nginx的配置被设置为以下

server { 
listen 80; 
listen 443; 
server_name docker-virtual.reverse-proxy.company.com reverse-proxy.company.com; 
..... other confug 

} 

这一套了,我期待lients连接到虚拟回购

docker push docker-virtual.reverse-proxy.company.com/<my-image> 

这是一个有效的设置? 请注意,我们没有通配符证书,并且没有选项。 多域证书是否也需要支持默认的部署目录?

回答

3

因此,您可以通过使用多个servername语句而不是通配符,然后按照您的建议原样使用我们的通配符重写规则。 除了docker-virtual.reverse-proxy.company.com和reverse-proxy.company.com之外,没有任何需要支持任何东西,因为从docker-virtual到local的转发是artifactory的内部。

您也可以拥有单独的服务器语句,这样可以更轻松地单独获得单个域证书。泊坞窗一会又是:

server { 
listen 443; //docker is ssl only 
server_name docker-virtual.reverse-proxy.company.com; 
..... other confug 

} 
+0

谢谢你记住这个是有帮助的,通过通配符重写规则将在转发任何ocker-virtual.reverse-proxy.company.com请求中重写重定向^/(v1 | v2)/(。*)/ artifactory/api/docker/$ repo/$ 1/$ 2; 是否正确? –

+0

啊。我的道歉我刚刚意识到,只有当你有通配符服务器名称表达式 server_name〜(?。+)\。artifactory.local ,因为这是通过正则表达式提取repo变量的地方。如果您的DNS仅路由该路由,那么将该监听语句放入(而不是docker-virtual.reverse-proxy.company.com)中仍是安全的,或者您可以执行上述单独的监听语句。 –

+0

嗯。因此,对于支持docker-virtual.reverse-proxy.company.com的多域证书,重定向将是/ artifactory/api/docker/docker-virtual/$ 1/$ 2。正确?单独的监听语句是否在同一个端口上?我现在很困惑 –