SonarQube 代理配置,棘手
Posted
技术标签:
【中文标题】SonarQube 代理配置,棘手【英文标题】:SonarQube Proxy Configuration, Tricky 【发布时间】:2013-12-10 13:09:45 【问题描述】:我无法让代理配置适用于 SonarQube 4.0,因此我可以安装插件。
当我打开http://localhost:9000/updatecenter/available
时,它显示错误:“未连接到更新中心。请检查您的互联网连接和日志。”
在 sonar.log 中我读到:“org.sonar.api.utils.HttpDownloader$HttpException:下载失败 [http://update.sonarsource.org/update-center.properties]。响应代码:403”
在 sonar.properties 中,我使用与其他程序相同的代理对其进行了配置:
sonar.updatecenter.activate=true
http.proxyHost=<host>
http.proxyPort=<port>
http.proxyUser=<username>
http.proxyPassword=<password>
我尝试在 wrapper.properties 中进行相同的配置,但它也不起作用。
对于代理主机,我尝试了短名称和全名。对于用户名,我只尝试了用户名和<DOMAINNAME>\<username>
和<DOMAINNAME>\\<username>
。
没有任何效果。有什么想法吗?
【问题讨论】:
如果您的公司使用 NTLM 类型的代理,您可以尝试使用 CNTLM 应用程序。通过使用它,您可以绕过代理。 我像你一样进行了配置,并且运行顺利。我使用了代理的 IP。 在 SonarQube 5.1.1 中,代理配置不应在 conf/wrapper.properties 中进行,而应在 conf/sonar.properties 中进行。我已经在那里配置了代理,可以看到插件列表,但无法下载或更新任何插件,因为错误:***.com/questions/23289159/… 【参考方案1】:我的代理配置有效,看起来如下:
http.proxyHost=proxy.domain.de
http.proxyPort=8888
请注意,网址前没有“http://”或其他任何内容。
另外,我不使用代理身份验证,所以我把“proxyUser”和“proxyPassword”注释掉了。
【讨论】:
【参考方案2】:对于那些在 Docker 中运行 SonarQube 的人,我对这里提到的任何建议都不满意。但我发现以下解决方案对我有用 (here):
docker run -d sonarqube -Dhttp.proxyHost=<myproxy.url.com> -Dhttp.proxyPort=<port>
在 docker-compose 表示法中与此等效:
services:
sonarqube:
image: sonarqube
command: -Dhttp.proxyHost=<myproxy.url.com> -Dhttp.proxyPort=<port>
【讨论】:
这完全为我们的公司代理成功了!请注意,要通过 Active Directory 进行身份验证,您可以通过取消反斜杠来指定域和用户。例如: -Dhttp.proxyUser=DOMAIN\\用户名【参考方案3】:只是一个信息:我也遇到了这个问题。 我可以看到插件,但无法下载。问题是,您必须将此行添加到您的 sonar.properties 中,用于 https:
# https-proxy
sonar.web.javaAdditionalOpts=-Dhttps.proxyHost=xxxxx -Dhttps.proxyPort=xxxx -Dhttps.proxyUser=xxxx -Dhttps.proxyPassword=xxxx
【讨论】:
对我不起作用。通过设置“sonar.web.javaAdditionalOpts”中的选项或直接设置。【参考方案4】:我使用了官方文档,它可以工作: Using the Update Center behind a Proxy
http.proxyHost=<your.proxy.host>
http.proxyPort=<yout.proxy.port>
问候,
【讨论】:
【参考方案5】:在 sonar.properties 中设置代理不带“http://”,只有 http.proxyHost=myproxy.domain.pt
另一个建议是在 wrapper.conf 上也添加这行:
wrapper.java.additional.3=-Dhttp.proxySet=true
wrapper.java.additional.4=-Dhttp.proxyHost=myproxy.domain.pt
wrapper.java.additional.5=-Dhttp.proxyPort=myproxy.port
wrapper.java.additional.6=-Dhttps.proxyHost=myproxy.domain.pt
wrapper.java.additional.7=-Dhttps.proxyPort=myproxy.port
如果你有一个 docker 卷,请在使用此配置部署新卷之前将其删除,否则它将保留原始配置
【讨论】:
【参考方案6】:Appart from http,别忘了在 sonar.properties 中设置你的 https 代理配置(更新服务器在 HTTPS 后面):
https.proxyHost=<host>
https.proxyPort=<port>
https.proxyUser=<username>
https.proxyPassword=<password>
【讨论】:
以上是关于SonarQube 代理配置,棘手的主要内容,如果未能解决你的问题,请参考以下文章