이 문서는 Artifactory 서비스에서 HTTP 설정과 역방향 프록시 설정 등에 대한 가이드를 공유하기 위해 작성되었다.
|
많은 경우, 조직은 NGINX 또는 Apache 와 같은 역방향 프록시를 통해 Artifactory에 대한 액세스를 제공할 수 있습니다.
|
Artifactory를 자체 호스팅 개인 Docker 레지스트리로 사용할 때 Docker 클라이언트는 역방향 프록시를 통해 또는 Artifactory의 내장 Tomcat을 통해 직접 Artifactory에 액세스할 수 있습니다.
JFrog Artifactory Cloud 설치에서 Artifactory Docker 레지스트리에 액세스하는 경우 조직 외부에 있으므로 역방향 프록시를 사용하지 않습니다. |
Docker Access Method를 Repository Path로 설정해야 합니다.
Repository Path 방법 : Artifactory Docker 저장소에 액세스할 때 저장소 경로 (예: |
Docker 클라이언트는 Sub Domain (권장) 또는 Port 방법을 사용하여 역방향 프록시를 통해 Artifactory에 액세스할 수 있습니다.
Docker 저장소를 구성할 때 역방향 프록시 방법으로 Sub Domain을 선택하면 Docker 저장소의 Advanced 탭의 Registry Name이 자동으로 필요한 값으로 설정되며, Sub Domain으로 저장소 키가 사용됩니다.
방법을 Port로 선택하는 경우, Docker 저장소를 구성할 때 Docker 저장소 구성 고급 탭에서 레지스트리 포트를 설정해야 합니다.
이 포트는 Docker 클라이언트가 저장소에서 이미지를 가져오고 저장소에 이미지를 푸시하는 데 사용할 포트입니다.
모든 Docker 저장소를 역방향 프록시 구성에 포함하려면 먼저 시스템에 정의된 각 Docker 저장소에 대한 포트를 설정한 다음 역방향 프록시 구성을 생성해야 합니다.
가상 도커 저장소 (Virtual Docker Repository)를 만들고 이를 사용하여 이미지를 끌어오고 푸시하면 해당 가상 저장소에 대한 NGINX 구성만 설정하면 되기 때문에 이를 권장합니다. |
사용자 인터페이스에 링크가 올바르게 나타나도록 하려면 Artifactory 자체에서 기본 URL을 설정해야 합니다.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_certificate /etc/nginx/ssl/yourdomain.com.crt; ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key; ssl_session_cache shared:SSL:1m; ssl_prefer_server_ciphers on; |
## system.yaml 파일에 플랫폼 설정을 세팅 server { listen 443 ssl; listen 80 ; server_name yourdomain.com; if ($http_x_forwarded_proto = '') { set $http_x_forwarded_proto $scheme; } ## Application specific logs ## access_log /var/log/nginx/yourdomain.com-access.log timing; ## error_log /var/log/nginx/yourdomain.com-error.log; rewrite ^/$ /ui/ redirect; rewrite ^/ui$ /ui/ redirect; chunked_transfer_encoding on; client_max_body_size 0; location / { proxy_read_timeout 2400s; proxy_pass_header Server; proxy_cookie_path ~*^/.* /; proxy_pass http://<artifactory-ip>:8082; proxy_next_upstream error timeout non_idempotent; proxy_next_upstream_tries 1; proxy_set_header X-JFrog-Override-Base-Url $http_x_forwarded_proto://$host:$server_port; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~ ^/artifactory/ { proxy_pass http://<artifactory-ip>:8081; } } } |
바이너리 캐싱은 Nginx 역방향 프록시에서 활성화할 수 있지만, 현재 Artifactory에서는 지원하지 않습니다. |
proxy_http
rewrite
deflate
headers
proxy_balancer
proxy_connect
proxy_html
ssl
lbmethod_byrequests
slotmem_shm
proxy
HTTP 프로토콜을 사용하여 Artifactory의 프론트 엔드로 Apache HTTP 서버를 설정할 수 있습니다.
Tomcat과 함께 Artifactory를 실행하는 경우 HTTP를 통해 Artifactory를 프록시하도록 Apache를 설정하는 것이 좋습니다.
Artifactory 자체에 기본 URL을 설정하여 UI 링크가 올바르게 표시되도록 해야 합니다.
<VirtualHost *:80> ServerName yourdomain.com ServerAlias *.yourdomain.com ServerAdmin server@admin ## Application specific logs ## ErrorLog ${APACHE_LOG_DIR}/yourdomain.com-error.log ## CustomLog ${APACHE_LOG_DIR}/yourdomain.com-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 ^(/)?$ /ui/ [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-JFrog-Override-Base-Url %{my_scheme}e://yourdomain.com:%{my_server_port}e ProxyPassReverseCookiePath / / ProxyRequests off ProxyPreserveHost on ProxyPass "/artifactory/" http://<artifactory-ip>:8081/artifactory/ connectiontimeout=5 timeout=2400 ProxyPassReverse "/artifactory/" http://<artifactory-ip>:8081/artifactory/ ProxyPass "/" http://<artifactory-ip>:8082/ nocanon connectiontimeout=5 timeout=2400 ProxyPassReverse "/" http://<artifactory-ip>:8082/ </VirtualHost> |
HTTP 프로토콜을 사용하여 Artifactory의 프런트 엔드로 SSL(HTTPS)을 갖춘 Apache를 설정할 수 있습니다.
<VirtualHost *:443> SSLEngine on SSLCertificateFile path/to/yourdomain.com.crt SSLCertificateKeyFile path/to/yourdomain.com.key SSLProxyEngine on ## Additional reverse proxy directives </VirtualHost> |