我的新Nexus 3存储库运行正常。我能够配置一些基本设置。然后我完成了启用SSL的过程。我使用了说明here。我还在该页面上观看了视频,该视频没有提供与该页面匹配的说明。
我的系统信息: ubuntu 14.4 with Java 8.
安装目录:/opt/nexus-3.0.0-b2016011501/
为了简化路径,我创建了一个指向此目录的链接:nexus -> /opt/nexus-3.0.0-b2016011501/
因此,nexus的路径为/opt/nexus
我按如下方式生成了我的密钥库:
创建目录:/opt/nexus/etc/ssl
更改为该目录并运行:keytool -keystore keystore -alias jetty -genkey -keyalg RSA -validity 3650
。这会生成一个名为keystore
的文件。然后我将该文件复制到keystore.jks
。
更新了以下文件: /opt/nexus/etc/org.sonatype.nexus.cfg
添加了application-port-ssl=443
并添加了${karaf.etc}/jetty-https.xml
(这与书面说明不同)到{{1}的末尾行。然后(这是在视频中,但不是书面说明)我编辑了/opt/nexus/etc/jetty-https.xml文件,并用我在生成密钥库时指定的密码替换了三个地方的密码。
在此之后,如果我使用nexus-args=$
启动nexus,则会出现以下错误:
./nexus run
如果它以2016-01-27 02:20:41,013+0000 ERROR [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Failed to start
java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method) [na:1.8.0_72]
at sun.nio.ch.Net.bind(Net.java:433) [na:1.8.0_72]
at sun.nio.ch.Net.bind(Net.java:425) [na:1.8.0_72]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) [na:1.8.0_72]
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) [na:1.8.0_72]
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:326) [org.eclipse.jetty.server:9.3.5.v20151012]
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) [org.eclipse.jetty.server:9.3.5.v20151012]
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:244) [org.eclipse.jetty.server:9.3.5.v20151012]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [org.eclipse.jetty.util:9.3.5.v20151012]
at org.eclipse.jetty.server.Server.doStart(Server.java:384) [org.eclipse.jetty.server:9.3.5.v20151012]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [org.eclipse.jetty.util:9.3.5.v20151012]
at org.sonatype.nexus.bootstrap.jetty.JettyServer$JettyMainThread.run(JettyServer.java:274) [org.sonatype.nexus.bootstrap:3.0.0.b2016011501]
启动它会起作用,但会向我显示唠叨消息,说我不应该以root身份运行它。
我已验证我的用户是所有文件和目录/ opt / nexus
的所有者答案 0 :(得分:0)
在Linux(和其他unix类型系统)上,除非你是root用户,否则你不能在低于1024的端口号上运行。解决此问题的最佳方法是在反向代理后面运行Nexus。你可以在这里找到相关说明:
http://books.sonatype.com/nexus-book/reference/install-sect-proxy.html
以上是针对Nexus 2.x编写的,但Nexus 3中所需的配置相同。
关于以非root身份作为服务运行,3.0m7中存在一个错误,导致此问题:
https://issues.sonatype.org/browse/NEXUS-9437
修复是编辑" bin / nexus"启动脚本是替换这一行:
INSTALL4J_JAVA_PREFIX="su - $run_as_user -c"
有了这个:
exec su - $run_as_user "$prg_dir/$progname" $@
此修复程序将在下一个版本中发布。
完成更改后,将符号链接$ NEXUS_HOME / bin / nexus添加到/etc/init.d/nexus,然后安装该服务。并编辑" $ NEXUS_HOME / bin / nexus.rc"并设置" run_as_user"适当。