Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sonatype Nexus:使用Apache的SSL代理_Apache_Nexus_Mod Proxy - Fatal编程技术网

Sonatype Nexus:使用Apache的SSL代理

Sonatype Nexus:使用Apache的SSL代理,apache,nexus,mod-proxy,Apache,Nexus,Mod Proxy,我们正在运行Sonatype的Nexus来存储我们的所有构建、缓存我们的依赖项等等。但是,我想从默认安装的端口8081URL移开,而是通过Apache代理通过SSL托管它。我已将Apache的mod_proxy设置为代理它,以便https://myserver.com/nexus显示Nexus。我在虚拟主机配置中使用了以下配置指令: # Configure mod_proxy to be used for proxying URLs on this site to other URLs/port

我们正在运行Sonatype的Nexus来存储我们的所有构建、缓存我们的依赖项等等。但是,我想从默认安装的端口
8081
URL移开,而是通过Apache代理通过SSL托管它。我已将Apache的
mod_proxy
设置为代理它,以便
https://myserver.com/nexus
显示Nexus。我在虚拟主机配置中使用了以下配置指令:

# Configure mod_proxy to be used for proxying URLs on this site to other URLs/ports on this server.
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
  AddDefaultCharset off
  Order deny,allow
  Allow from all
</Proxy>

# Proxy the Sonatype Nexus OSS web application running at http://localhost:8081/nexus
<Location /nexus>
  ProxyPass http://localhost:8081/nexus
  ProxyPassReverse http://localhost:8081/nexus
</Location>
#将mod#u proxy配置为用于将此站点上的URL代理到此服务器上的其他URL/端口。
代理请求关闭
ProxyVia关闭
代理主机
添加默认字符集
命令拒绝,允许
通融
#代理运行在的Sonatype Nexus OSS web应用程序http://localhost:8081/nexus
ProxyPasshttp://localhost:8081/nexus
ProxyPassReversehttp://localhost:8081/nexus
这似乎与上页的说明相符。但是,我无法清除Nexus中的“基本URL”设置:它不允许我将其留空

一切都正常:我可以通过HTTPS URL访问Nexus,登录并执行大多数GUI功能

但是,登录时,我会收到以下警告消息:

警告
http://myserver.com/nexus
与您的实际URL不匹配!如果您运行的是ApacheModu代理,下面介绍如何使用它配置Nexus

并不是GUI中的所有东西都能正常工作。到目前为止,我注意到以下几点:

  • 系统馈送:出现以下错误:

    访问/nexus/service/local/Feed时出现问题。原因:

    根据请求中发送的accept标头,请求标识的资源只能生成具有不可接受内容特征的响应实体

    Nexus返回了一个错误:错误406:根据请求中发送的accept标头,请求标识的资源只能生成具有不可接受内容特征的响应实体
  • 删除托管存储库:我浏览并删除了几个空的和不需要的存储库。然而,在确认删除后,只有第一个被删除。我必须登录到
    8081
    站点才能删除其他任何一个


您只需要在管理->服务器配置屏幕中调整baseUrl设置。设置您正在使用的url,然后单击Force Base url选项。

根据,更好的解决方案可能是在Apache配置中添加RequestHeader:

RequestHeader set X-Forwarded-Proto "https"

我尝试了接受的答案,这似乎是可行的,但一旦我添加了RequestHeader,我就能够取消选中Force URL,警告被清除。不过,我还没有测试OP描述的其他行为。

布莱恩:谢谢!我尝试将基本URL设置为完整的
https
地址,但没有成功。不过,同时启用强制URL确实起到了作用。Sonatype当前的文档表明,强制基本URL复选框的原始意图不再是有效的用例,可能会导致问题。然而,基本URL字段似乎仍然是进行更改的地方。是的,强制使用baseUrl是可行的,但它会阻止其他用例。我的用例是,我正在从一个旧的URL迁移,需要两个主机名来指向同一台机器。这应该是公认的答案!感谢您指出这一点,因为我在第一次阅读文档时错过了它;