Nexus Repository · 6 min read · Nov 27, 2025

Come installare e configurare Nexus Repository Manager su Ubuntu 20.04

Nexus è un gestore di repository che fornisce una piattaforma che protegge l’intero ciclo di vita dello sviluppo software. Ti consente di raccogliere e gestire le tue dipendenze e rende più facile distribuire il tuo software. È una fonte unica di tutti i componenti, binari e artefatti di build. Fornisce supporto per Gradle, Ant, Maven e Ivy, e consente agli sviluppatori di gestire i componenti tramite binari, contenitori, assemblaggi e prodotti finiti. Puoi anche integrare Nexus con i tuoi sistemi di utenti e autenticazione esistenti come LDAP e Atlassian Crowd.

In questo tutorial, ti mostreremo come installare il gestore di repository Nexus su Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Una password di root configurata sul server.

Iniziare

Prima di iniziare, dovrai aggiornare i pacchetti di sistema all’ultima versione. Puoi aggiornarli utilizzando il seguente comando:

apt-get update -y

Una volta aggiornato il server, puoi procedere al passaggio successivo.

Installa Java

Nexus è basato su Java, quindi dovrai installare la versione 8 di Java nel tuo sistema. Puoi installarla con il seguente comando:

apt-get install openjdk-8-jdk -y

Una volta installato Java, puoi verificare la versione installata di Java con il seguente comando:

java -version

Dovresti ottenere il seguente output:

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)

Una volta installato Java, puoi procedere al passaggio successivo.

Installa Nexus

Prima di iniziare, dovrai creare un utente separato per eseguire Nexus. Puoi crearlo eseguendo il seguente comando:

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

Successivamente, consenti all’utente nexus di eseguire tutti i comandi con sudo senza password. Puoi farlo eseguendo il seguente comando:

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

Successivamente, crea una directory per Nexus e scarica l’ultima versione di Nexus con il seguente comando:

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

Una volta completato il download, estrai il file scaricato nella directory /opt/nexus eseguendo il seguente comando:

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

Successivamente, imposta la proprietà corretta sulla directory nexus eseguendo il seguente comando:

chown -R nexus:nexus /opt/nexus

Successivamente, modifica il file di configurazione nexus.vmoptions e definisci la dimensione massima della memoria:

nano /opt/nexus/bin/nexus.vmoptions

Imposta la dimensione massima della memoria Java e sostituisci “../sonatype-work” con “./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

Salva e chiudi il file, quindi modifica il file nexus.rc e definisci l’utente di esecuzione:

nano /opt/nexus/bin/nexus.rc

Decommenta e modifica la seguente riga con l’utente nexus:

run_as_user="nexus"

Salva e chiudi il file, quindi avvia il servizio Nexus con il seguente comando:

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

Successivamente, verifica Nexus con il seguente comando:

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

Dovresti ottenere il seguente output:

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

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

A questo punto, Nexus è avviato e in ascolto sulla porta 8081. Puoi controllarlo con il seguente comando:

ss -altnp | grep 8081

Dovresti ottenere il seguente output:

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

Successivamente, ferma il servizio Nexus con il seguente comando:

/opt/nexus/bin/nexus stop

Crea un file di servizio Systemd per Nexus

Successivamente, dovrai creare un file di servizio systemd per gestire il servizio Nexus. Puoi crearlo con il seguente comando:

nano /etc/systemd/system/nexus.service

Aggiungi le seguenti righe:

[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

Salva e chiudi il file, quindi ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Successivamente, avvia il servizio Nexus e abilitalo per l’avvio al riavvio del sistema con il seguente comando:

systemctl start nexus  
systemctl enable nexus

Puoi anche verificare lo stato del servizio Nexus utilizzando il seguente comando:

systemctl status nexus

Dovresti ottenere il seguente output:

? 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)

Una volta terminato, puoi procedere al passaggio successivo.

Configura Nginx come reverse proxy per Nexus

Successivamente, dovrai installare Nginx e configurare Nginx come reverse proxy. Prima di tutto, installa i pacchetti Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, crea un file di configurazione del virtual host Nginx con il seguente comando:

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

Aggiungi le seguenti righe:

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;
    }
}

Salva e chiudi il file, quindi verifica il file di configurazione di Nginx con il seguente comando:

ginx -t

Dovresti ottenere il seguente output:

ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
ginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Puoi anche verificare lo stato di Nginx con il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

? nginx.service - Un server web ad alte prestazioni e un server reverse proxy
     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: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??7124 nginx: worker process
             ??7125 nginx: worker process

Feb 23 12:24:57 ubuntu2004 systemd[1]: Starting Un server web ad alte prestazioni e un server reverse proxy...
Feb 23 12:24:57 ubuntu2004 systemd[1]: Started Un server web ad alte prestazioni e un server reverse proxy.

Accedi all’interfaccia web di Nexus

Prima di accedere all’interfaccia web di Nexus, stampa la password dell’amministratore di Nexus con il seguente comando:

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

Dovresti ottenere il seguente output:

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Ora, apri il tuo browser web e accedi all’interfaccia web di Nexus utilizzando l’URL http://nexus.example.com. Verrai reindirizzato alla seguente pagina:

Interfaccia utente Nexus

Ora, fai clic sul pulsante Accedi. Verrai reindirizzato alla pagina di accesso di Nexus:

Accesso

Fornisci il tuo nome utente e password di amministratore e fai clic sul pulsante Accedi. Dovresti vedere la pagina di configurazione di Nexus:

Procedura guidata di configurazione

Fai clic sul pulsante Avanti per continuare. Dovresti vedere la seguente pagina:

Imposta nuova password

Imposta la tua nuova password e fai clic sul pulsante Avanti. Dovresti vedere la seguente pagina:

Configura accesso anonimo

Seleziona l’opzione “Abilita accesso anonimo” e fai clic sul pulsante Avanti. Dovresti vedere la seguente pagina:

Impostazione completata

Fai clic sul pulsante Fine per completare la configurazione e fai clic sull’icona dell’ingranaggio Impostazioni. Dovresti vedere il dashboard del repository Nexus:

Dashboard del gestore di repository Nexus

Conclusione

Congratulazioni! hai installato con successo il gestore di repository Nexus con Nginx come reverse proxy sul server Ubuntu 20.04. Sentiti libero di chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.