2016-09-30 22 views
8

我在看nginx的配置,以建立一个码头工人库Nginx的位置/ 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; 
    } 
} 

为什么位置指令设定/ artifactory的VS /根位置

+0

个人喜好。有时应用程序通过它们的URI访问,有时通过子域访问应用程序(例如,artifactory.example.com)。使用许多子域名还有其他一些小问题,但这不是这里的主题。 –

回答

0

位置指令是/artifactory/而不是/,因为您正在使用公共上下文。也就是说,所有对Artifactory的访问将以servername/artifactory/的形式进行,而不是servername/。这样做,你可以使用相同的网址用于多个应用,例如优势,是这样的:

Artifactory的 - >servername/artifactory/ 詹金斯 - >servername/jenkins/ 我的自定义服务 - >servername/myapp/

换句话说,它允许您针对不同的应用程序重用具有不同上下文的相同服务器名称(和端口)。如果您的反向代理正在监听根级别,则所有请求都将被转发给Artifactory。

现在要回答您的具体问题,为什么Artifactory会这样做?由于Artifactory附带的默认tomcat在其上下文中使用artifactory关键字,因此可能会使其清晰度/一致性更高。您当然可以自由地从NGINX配置中删除公共上下文,如果您进行了所有必要的更改(将其从重写,位置和X-Artifactory-Override-Base中移除),则所有内容都将按照预期与根环境servername/一起工作-url)。