2017-09-29 2 views
2

Artifactoryをバージョン> 5.4.0にアップグレードした後、Artifactoryはこのバージョンのアクセストークンに追加のwebapp(access.war)を使用するため、リバースプロキシの背後で実行することはできません。新しいアクセスWebアプリケーションでリバースプロキシの背後にあるArtifactoryを使用するにはどうすればよいですか?

Apacheはリバースプロキシとして設定され、ArtifactoryのTomcatに接続するためのプロトコルとしてAJPを使用します。私はAJPを使いたいので、ポート8081のhttpコネクタはコメントアウトされています。

Application could not be initialized: Could not detect listening port. 
Caused by: java.lang.IllegalStateException: Could not detect listening port. 
at org.artifactory.security.access.ArtifactoryAccessClientConfigStore.detectBundledAccessServerUrl(ArtifactoryAccessClientConfigStore.java:501) ~[artifactory-core-5.5.1.jar:na] 
at org.artifactory.security.access.ArtifactoryAccessClientConfigStore.lambda$4(ArtifactoryAccessClientConfigStore.java:476) ~[artifactory-core-5.5.1.jar:na] 
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742) ~[guava-18.0.jar:na] 
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) ~[guava-18.0.jar:na] 
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) ~[guava-18.0.jar:na] 
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) ~[guava-18.0.jar:na] 
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) ~[guava-18.0.jar:na] 
... 30 common frames omitted 

のserver.xml

Artifactoryを起動すると、http経由でアクセスサービスに接続して取得しようとします。httpコネクタを無効にすると、エラーメッセージに続いて

Using Access Server URL: http://localhost:8081/access (bundled) source: detected 

が発生します

<Service name="Catalina"> 
    <!--Connector port="8081"/--> 

    <!-- This is the optional AJP connector --> 
    <Connector port="8019" protocol="AJP/1.3" maxThreads="500" minSpareThreads="20" enableLookups="false" backlog="100"/> 

    <Engine name="Catalina" defaultHost="localhost"> 
     <Host name="localhost" appBase="webapps" startStopThreads="2"/> 
    </Engine> 
</Service> 

クライアント側のアクセスサーバーのURLはどのように変更できますか?

+0

使用しているArtifactoryのバージョン? (OSS/PRO) PROバージョンを使用している場合は、管理ページの "リバースプロキシジェネレータ"を試してみましたか? – Ariel

+0

申し訳ありませんが、OSSバージョンを使用しています。素晴らしい機能のように聞こえる。 – timomeinen

答えて

2

基本的にはあなたの構成は次のようになります(与えるか、または取る)

ProxyPreserveHost On 

ServerName localhost 
ServerAlias *.localhost 
ServerAdmin [email protected] 


## Application specific logs 
## ErrorLog ${APACHE_LOG_DIR}/localhost-error.log 
## CustomLog ${APACHE_LOG_DIR}/localhost-access.log combined 

AllowEncodedSlashes On 
RewriteEngine on 

RewriteCond %{SERVER_PORT} (.*) 
RewriteRule (.*) - [E=my_server_port:%1] 
## NOTE: The 'REQUEST_SCHEME' Header is supported only from apache version 2.4 and above 
RewriteCond %{REQUEST_SCHEME} (.*) 
RewriteRule (.*) - [E=my_scheme:%1] 

RewriteCond %{HTTP_HOST} (.*) 
RewriteRule (.*) - [E=my_custom_host:%1] 



RewriteRule ^/$    /artifactory/webapp/ [R,L] 
RewriteRule ^/artifactory(/)?$  /artifactory/webapp/ [R,L] 
RewriteRule ^/artifactory/webapp$ /artifactory/webapp/ [R,L] 

RequestHeader set Host %{my_custom_host}e 
RequestHeader set X-Forwarded-Port %{my_server_port}e 
## NOTE: {my_scheme} requires a module which is supported only from apache version 2.4 and above 
RequestHeader set X-Forwarded-Proto %{my_scheme}e 
RequestHeader set X-Artifactory-Override-Base-Url %{my_scheme}e://localhost:%{my_server_port}e/artifactory 
ProxyPassReverseCookiePath /artifactory /artifactory 

ProxyRequests off 
ProxyPreserveHost on 
ProxyPass /artifactory/ http://localhost:8081/artifactory/ 
ProxyPassReverse /artifactory/ http://localhost:8081/artifactory/ 

+0

これはHTTPプロキシで使用できます。しかし、私はhttpコネクターを公開したくありません。 AJPのみでプロキシを設定するにはどうすればよいですか? – timomeinen

関連する問題