在我们的旧服务器(托管)上,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 服务器的配置需要进行一些更改,但是
- Tomcat 配置超出了我的专业范围
- 我自己无法更改配置,我没有这些文件的写权限。
我真正需要的是一个可以发送给我们的托管服务提供商的配置,这样他们就可以从我的电子邮件中复制粘贴。
简洁版本: 如何让 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/;
}
}