2016-08-30 109 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。正確?單獨的監聽語句是否在同一個端口上?我現在很困惑 –