Nginx 后面的 Artifactory 在 URL 中没有目录 /artifactory

Nginx 后面的 Artifactory 在 URL 中没有目录 /artifactory

在我们的旧服务器(托管)上,Artifactory 在 Apache 代理后面运行。公共 URL 是http://repo.example.com/

我们的托管服务提供商将我们转移到了新的服务器。

  • 安装了新版本的 Artifactory,将数据从旧服务器导出并导入到新服务器
  • Artfactory 现在运行在 Nginx 后面
  • 公共网址现在是http://repo.example.com/artifactory/

我们已要求托管服务提供商将网址改回http://repo.example.com/,因为现在我们的 Jenkins 作业中断了,而且外部用户可能依赖该 URL。他们告诉我,我首先需要在 Artifactory 中更改一些设置(没有详细说明具体是什么),但我在 Web 界面中能找到的唯一设置是自定义 URL 基础,并且已经设置为http://repo.example.com。我最好的猜测是,运行 Artifactory 的 Tomcat 服务器的配置需要进行一些更改,但是

  1. Tomcat 配置超出了我的专业范围
  2. 我自己无法更改配置,我没有这些文件的写权限。

我真正需要的是一个可以发送给我们的托管服务提供商的配置,这样他们就可以从我的电子邮件中复制粘贴。

简洁版本: 如何让 Artfactory 在 Nginx 后面运行,并可访问http://repo.example.com

编辑:这是当前的/usr/local/artifactory/tomcat/conf/server.xml

<Server port="8015" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8083"/> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps"/> </Engine> </Service> </Server>

将其改为:是否足够?

<Server port="8015" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8083"/> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps"> <Context path="" docBase="."/> </Host> </Engine> </Service> </Server>

如上所述,我没有服务器的根访问权限,因此我无法自己修改它。

答案1

/etc/nginx/sites-enabled/java_artifactory为了使它发挥作用,他们可能采取了以下措施:

server {
  listen 80;
  server_name  artifactory.java.********** ;


  error_log  /var/log/nginx/java/artifactory_error.log;
  access_log  /var/log/nginx/java/artifactory_access.log;

  location / {
    # rewrite ^/?$ http://**********/webapp/home.html;
    # rewrite ^/artifactory(.*)$ http://**********$1;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_read_timeout 300s;
    # proxy_pass http://localhost:8083/artifactory/;
    proxy_pass http://localhost:8083/;
  }
}

相关内容