Installation · 6 min read · Nov 27, 2025

So installieren und konfigurieren Sie den Nexus Repository Manager auf Ubuntu 20.04

Nexus ist ein Repository-Manager, der eine Plattform bietet, die Ihren gesamten Softwareentwicklungszyklus schützt. Es ermöglicht Ihnen, Ihre Abhängigkeiten zu sammeln und zu verwalten und erleichtert die Verteilung Ihrer Software. Es ist eine einzige Quelle für alle Komponenten, Binärdateien und Build-Artefakte. Es bietet Unterstützung für Gradle, Ant, Maven und Ivy und ermöglicht Entwicklern, Komponenten über Binärdateien, Container, Assemblies und Fertigwaren zu verwalten. Sie können Nexus auch mit Ihren bestehenden Benutzer- und Authentifizierungssystemen wie LDAP und Atlassian Crowd integrieren.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Nexus Repository Manager auf Ubuntu 20.04 installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 20.04 ausführt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor Sie beginnen, müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald Ihr Server aktualisiert ist, können Sie mit dem nächsten Schritt fortfahren.

Java installieren

Nexus basiert auf Java, daher müssen Sie Java Version 8 auf Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

apt-get install openjdk-8-jdk -y

Sobald Java installiert ist, können Sie die installierte Version von Java mit dem folgenden Befehl überprüfen:

java -version

Sie sollten die folgende Ausgabe erhalten:

openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

Sobald Java installiert ist, können Sie mit dem nächsten Schritt fortfahren.

Nexus installieren

Bevor Sie beginnen, müssen Sie einen separaten Benutzer erstellen, um Nexus auszuführen. Sie können ihn erstellen, indem Sie den folgenden Befehl ausführen:

useradd -M -d /opt/nexus -s /bin/bash -r nexus

Als Nächstes erlauben Sie dem Nexus-Benutzer, alle Benutzer mit sudo ohne Passwort auszuführen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus

Als Nächstes erstellen Sie ein Verzeichnis für Nexus und laden die neueste Version von Nexus mit dem folgenden Befehl herunter:

mkdir /opt/nexus  
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei in das Verzeichnis /opt/nexus, indem Sie den folgenden Befehl ausführen:

tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1

Als Nächstes setzen Sie die richtigen Berechtigungen für das Nexus-Verzeichnis, indem Sie den folgenden Befehl ausführen:

chown -R nexus:nexus /opt/nexus

Als Nächstes bearbeiten Sie die Konfigurationsdatei nexus.vmoptions und definieren die maximale Speichergröße:

nano /opt/nexus/bin/nexus.vmoptions

Setzen Sie die maximale Java-Speichergröße und ersetzen Sie “../sonatype-work” durch “./sonatype-work”:

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

-XX:LogFile=./sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=/etc/karaf/java.util.logging.properties
-Dkaraf.data=./sonatype-work/nexus3
-Dkaraf.log=./sonatype-work/nexus3/log
-Djava.io.tmpdir=./sonatype-work/nexus3/tmp

Speichern Sie die Datei und schließen Sie sie, und bearbeiten Sie dann die Datei nexus.rc und definieren Sie den Benutzer, unter dem ausgeführt werden soll:

nano /opt/nexus/bin/nexus.rc

Kommentieren Sie die folgende Zeile aus und ändern Sie sie in den Nexus-Benutzer:

run_as_user="nexus"

Speichern Sie die Datei und schließen Sie sie, und starten Sie dann den Nexus-Dienst mit dem folgenden Befehl:

sudo -u nexus /opt/nexus/bin/nexus start

Überprüfen Sie als Nächstes den Nexus mit dem folgenden Befehl:

tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log

Sie sollten die folgende Ausgabe erhalten:

2021-02-23 12:20:51,839+0000 INFO  [jetty-main-1]  *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass=
2021-02-23 12:20:51,853+0000 INFO  [jetty-main-1]  *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for APIs...
2021-02-23 12:20:52,582+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate: org.sonatype.nexus.siesta.internal.resteasy.SisuResteasyProviderFactory@649a69ca
2021-02-23 12:20:52,611+0000 INFO  [jetty-main-1]  *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
2021-02-23 12:20:53,811+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2021-02-23 12:20:53,817+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2021-02-23 12:20:53,852+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@7a65358d{Sonatype Nexus,/,file:///opt/nexus/public/,AVAILABLE}
2021-02-23 12:20:53,883+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@764a4935{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
2021-02-23 12:20:53,884+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.Server - Started @37529ms
2021-02-23 12:20:53,884+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - 
-------------------------------------------------

Started Sonatype Nexus OSS 3.29.2-02

-------------------------------------------------

An diesem Punkt ist Nexus gestartet und hört auf Port 8081. Sie können dies mit dem folgenden Befehl überprüfen:

ss -altnp | grep 8081

Sie sollten die folgende Ausgabe erhalten:

LISTEN    0         50                 0.0.0.0:8081             0.0.0.0:*        users:(("java",pid=5548,fd=795)) 

Als Nächstes stoppen Sie den Nexus-Dienst mit dem folgenden Befehl:

/opt/nexus/bin/nexus stop

Erstellen Sie eine Systemd-Dienstdatei für Nexus

Als Nächstes müssen Sie eine Systemd-Dienstdatei erstellen, um den Nexus-Dienst zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/nexus.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target

Speichern Sie die Datei und schließen Sie sie, und laden Sie dann den Systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den Nexus-Dienst und aktivieren Sie ihn, damit er beim Systemneustart gestartet wird, mit dem folgenden Befehl:

systemctl start nexus  
systemctl enable nexus

Sie können auch den Status des Nexus-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status nexus

Sie sollten die folgende Ausgabe erhalten:

? nexus.service - nexus service
     Loaded: loaded (/etc/systemd/system/nexus.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-02-23 12:22:49 UTC; 15s ago
    Process: 6181 ExecStart=/opt/nexus/bin/nexus start (code=exited, status=0/SUCCESS)
   Main PID: 6368 (java)
      Tasks: 40 (limit: 4691)
     Memory: 642.9M
     CGroup: /system.slice/nexus.service
             ??6368 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-openjdk-amd64/jre -Dexe4j.mo>

Feb 23 12:22:49 ubuntu2004 systemd[1]: Starting nexus service...
Feb 23 12:22:49 ubuntu2004 nexus[6181]: Starting nexus
Feb 23 12:22:49 ubuntu2004 systemd[1]: Started nexus service.
lines 1-13/13 (END)

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Nginx als Reverse-Proxy für Nexus konfigurieren

Als Nächstes müssen Sie Nginx installieren und Nginx als Reverse-Proxy konfigurieren. Zuerst installieren Sie die Nginx-Pakete mit dem folgenden Befehl:

apt-get install nginx -y

Sobald Nginx installiert ist, erstellen Sie eine Nginx-virtuelle Hostkonfigurationsdatei mit dem folgenden Befehl:

nano /etc/nginx/conf.d/nexus.conf

Fügen Sie die folgenden Zeilen hinzu:

upstream backend {
  server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name nexus.example.com;

    location / {
        proxy_pass http://backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Speichern Sie die Datei und schließen Sie sie, und überprüfen Sie dann die Nginx-Konfigurationsdatei mit dem folgenden Befehl:

ginx -t

Sie sollten die folgende Ausgabe erhalten:

ginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
ginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten Sie schließlich den Nginx-Dienst neu, um die Änderungen anzuwenden:

systemctl restart nginx

Sie können auch den Status von Nginx mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - Ein leistungsstarker Webserver und ein Reverse-Proxy-Server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-02-23 12:24:57 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 7106 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 7107 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 7123 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??7123 nginx: Masterprozess /usr/sbin/nginx -g daemon on; master_process on;
             ??7124 nginx: Arbeitsprozess
             ??7125 nginx: Arbeitsprozess

Feb 23 12:24:57 ubuntu2004 systemd[1]: Starting Ein leistungsstarker Webserver und ein Reverse-Proxy-Server...
Feb 23 12:24:57 ubuntu2004 systemd[1]: Started Ein leistungsstarker Webserver und ein Reverse-Proxy-Server.

Zugriff auf die Nexus-Weboberfläche

Bevor Sie auf die Nexus-Web-UI zugreifen, drucken Sie das Nexus-Admin-Passwort mit dem folgenden Befehl:

cat /opt/nexus/sonatype-work/nexus3/admin.password

Sie sollten die folgende Ausgabe erhalten:

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Öffnen Sie jetzt Ihren Webbrowser und greifen Sie auf die Nexus-Web-UI über die URL http://nexus.example.com zu. Sie werden auf die folgende Seite umgeleitet: Nexus GUI

Klicken Sie jetzt auf die Schaltfläche Anmelden. Sie werden zur Nexus-Anmeldeseite umgeleitet: Login

Geben Sie Ihren Admin-Benutzernamen, Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten die Nexus-Setup-Seite sehen: Setup wizard

Klicken Sie auf die Schaltfläche Weiter, um fortzufahren. Sie sollten die folgende Seite sehen: Set new password

Legen Sie Ihr neues Passwort fest und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen: Configure anonymous access

Wählen Sie die Option “Anonymer Zugriff aktivieren” und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen: Setup complete

Klicken Sie auf die Schaltfläche Fertigstellen, um die Einrichtung abzuschließen, und klicken Sie auf das Einstellungszahnrad-Symbol. Sie sollten das Nexus-Repository-Dashboard sehen: Nexus Repository Manager dashboard

Fazit

Herzlichen Glückwunsch! Sie haben erfolgreich den Nexus Repository Manager mit Nginx als Reverse-Proxy auf dem Ubuntu 20.04-Server installiert. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.