2016-09-30 15 views
8

Tôi nhìn vào cấu hình nginx để thiết lập một kho DockerNginx địa điểm/vs/artifactory

########################################################### 
## this configuration was generated by JFrog Artifactory ## 
########################################################### 

## add ssl entries when https has been set in config 
ssl_certificate  /etc/nginx/ssl/demo.pem; 
ssl_certificate_key /etc/nginx/ssl/demo.key; 
ssl_session_cache shared:SSL:1m; 
ssl_prefer_server_ciphers on; 
## server configuration 
server { 
    listen 443 ssl; 
    listen 80 ; 
    server_name ~(?<repo>.+)\.art.local art.local; 

    if ($http_x_forwarded_proto = '') { 
     set $http_x_forwarded_proto $scheme; 
    } 
    ## Application specific logs 
    ## access_log /var/log/nginx/art.local-access.log timing; 
    ## error_log /var/log/nginx/art.local-error.log; 
    rewrite ^/$ /artifactory/webapp/ redirect; 
    rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; 
    rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2; 
    chunked_transfer_encoding on; 
    client_max_body_size 0; 
    location /artifactory/ { 
    proxy_read_timeout 900; 
    proxy_pass_header Server; 
    proxy_cookie_path ~*^/.* /; 
    proxy_pass   http://localhost:8081/artifactory/; 
    proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/artifactory; 
    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; 
    } 
} 

Tại sao chỉ thị vị trí thiết lập để/artifactory Vs/vị trí gốc

+0

Tùy chọn cá nhân. Đôi khi các ứng dụng được truy cập bởi URI của chúng, các lần khác nó được truy cập thông qua một tên miền phụ (ví dụ: artifactory.example.com) Có những tác động nhỏ khác khi sử dụng nhiều, nhiều tên miền phụ, nhưng đó không phải là chủ đề ở đây. –

Trả lời

0

Chỉ thị vị trí là /artifactory/ chứ không phải / vì bạn đang sử dụng ngữ cảnh công khai. Tức là, tất cả quyền truy cập vào Artifactory sẽ ở dạng servername/artifactory/ và không phải là servername/. Điều này có lợi thế mà bạn có thể sử dụng cùng một URL cho nhiều ứng dụng, ví dụ, một cái gì đó như thế này:

Artifactory ->servername/artifactory/ Jenkins ->servername/jenkins/ Dịch vụ Tuỳ chỉnh của tôi ->servername/myapp/

Nói cách khác, nó cho phép bạn sử dụng lại cùng một tên máy chủ (và cổng) với các ngữ cảnh khác nhau cho các ứng dụng khác nhau. Nếu proxy ngược của bạn đang nghe ở cấp cơ sở, tất cả các yêu cầu sẽ được chuyển tiếp đến Artifactory.

Bây giờ để trả lời câu hỏi cụ thể của bạn, tại sao Artifactory lại làm điều này? Đó là khả năng cho sự rõ ràng/tính nhất quán kể từ khi tomcat mặc định được chuyển với Artifactory sử dụng từ khóa tạo tác cho ngữ cảnh của nó. Bạn hoàn toàn có thể loại bỏ bối cảnh công khai khỏi cấu hình NGINX và mọi thứ sẽ hoạt động như mong đợi với ngữ cảnh gốc servername/, miễn là bạn thực hiện tất cả các thay đổi cần thiết (xóa nó khỏi ghi đè, vị trí và X-Artifactory-Ghi đè-Base -Url).