Hugo e Nginx · 18 min read · Oct 19, 2025

Come installare il generatore di siti Hugo con Nginx su Rocky Linux 9

Un sito statico è costruito con pagine di contenuto statico o codice HTML, JavaScript o CSS semplice. Il contenuto non è generato dinamicamente e non coinvolge alcun database o elaborazione lato server. Tali siti sono incredibilmente veloci e immuni a exploit che dipendono da codice dinamico o SQL.

Hugo è un generatore di siti statici open-source scritto in Go. Genera contenuti convertendo post scritti in linguaggio markdown in HTML. Hugo include anche un server integrato per ospitare i siti che genera. Puoi anche ospitare un sito web Hugo su Amazon S3, GitHub pages, Google Cloud, Netlify, Vercel, ecc.

In questo tutorial, esploreremo come installare Hugo per creare un sito web statico su un server alimentato da Rocky Linux 9. Utilizzeremo il server Nginx per ospitare il sito e il certificato SSL di Let’s Encrypt per proteggere la nostra installazione.

Prerequisiti

  • Un server che esegue Rocky Linux 9.
  • Un utente non root con privilegi sudo.
  • Un nome di dominio completamente qualificato (FQDN) che punta al tuo server. Per i nostri scopi, utilizzeremo hugo.example.com come nome di dominio.
  • Assicurati che tutto sia aggiornato. $ sudo dnf update
  • Installa pacchetti di utilità di base. Alcuni di essi potrebbero già essere installati. $ sudo dnf install wget curl nano unzip yum-utils tree -y

Passo 1 - Configurare il Firewall

Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.

$ sudo firewall-cmd --state
running

Il firewall funziona con diverse zone, e la zona pubblica è quella predefinita che utilizzeremo. Elenca tutti i servizi e le porte attive sul firewall.

$ sudo firewall-cmd --permanent --list-services

Dovrebbe mostrare il seguente output.

cockpit dhcpv6-client ssh

Wiki.js ha bisogno delle porte HTTP e HTTPS per funzionare. Aprile.

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Ricarica il firewall per applicare le modifiche.

$ sudo firewall-cmd --reload

Passo 2 - Installare Nginx

Rocky Linux 9 include una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.

Crea e apri il file /etc/yum.repos.d/nginx.repo per creare il repository ufficiale di Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Incolla il seguente codice in esso.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Installa il server Nginx.

$ sudo dnf install nginx -y

Verifica l’installazione.

$ nginx -v
nginx version: nginx/1.24.0

Abilita e avvia il server Nginx.

$ sudo systemctl enable nginx --now

Controlla lo stato del server.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-10-30 08:24:05 UTC; 7s ago
       Docs: http://nginx.org/en/docs/
    Process: 4265 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 4266 (nginx)
      Tasks: 2 (limit: 4402)
     Memory: 1.9M
        CPU: 7ms
     CGroup: /system.slice/nginx.service
             ??4266 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??4267 "nginx: worker process"

Oct 30 08:24:05 hugo.example.com systemd[1]: Starting nginx - high performance web server...

Passo 3 - Installare Git

Hugo ha bisogno di Git per funzionare. Esegui il seguente comando per installare Git

$ sudo dnf install git -y

Verifica l’installazione di Git.

$ git --version
git version 2.39.3

Passo 4 - Installare Hugo

Poiché Hugo è costruito utilizzando il linguaggio Go, installarlo è abbastanza semplice poiché non richiede alcuna dipendenza e può essere eseguito autonomamente.

Scarica Hugo. Per il nostro tutorial, installeremo la versione estesa di Hugo. La versione estesa può codificare le immagini nel formato Webp durante l’elaborazione delle immagini. Questo è utile se vuoi che Hugo converta le immagini per te al volo e mantenga le loro dimensioni ridotte. La versione estesa include anche un compilatore SASS che può essere utile in alcuni casi se ne hai bisogno.

Crea una directory per Hugo.

$ sudo mkdir /var/www/html/hugo -p

Passa alla directory appena creata.

$ cd /var/www/html/hugo

Scarica Hugo dalla pagina delle release di GitHub. Al momento della scrittura di questo tutorial, v0.119.0 è l’ultima versione che scaricheremo.

$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Estrai i file dall’archivio.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

Vedrai i seguenti tre file nella tua directory.

$ ls
hugo  hugo_extended_0.119.0_linux-amd64.tar.gz  LICENSE  README.md

Sposta il binario hugo nella directory /usr/bin.

$ sudo mv hugo /usr/bin/hugo

Il file ha già i permessi di esecuzione impostati, quindi non è necessario impostarli.

Conferma l’installazione.

$ hugo version
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio

Puoi anche controllare tutte le opzioni disponibili per l’uso utilizzando il flag --help.

$ hugo --help

Otterrai il seguente output.

hugo is the main command, used to build your Hugo site.

Hugo is a Fast and Flexible Static Site Generator
built with love by spf13 and friends in Go.

Complete documentation is available at https://gohugo.io/.

Usage:
  hugo [flags]
  hugo [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  config      Print the site configuration
  convert     Convert your content to different formats
  deploy      Deploy your site to a Cloud provider.
  env         Print Hugo version and environment info
  gen         A collection of several useful generators.
  help        Help about any command
  import      Import your site from others.
  list        Listing out various types of content
  mod         Various Hugo Modules helpers.
  new         Create new content for your site
  server      A high performance webserver
  version     Print Hugo version and environment info

Flags:
  -b, --baseURL string             hostname (and path) to the root, e.g. https://spf13.com/
  -D, --buildDrafts                include content marked as draft
  -E, --buildExpired               include expired content
  -F, --buildFuture                include content with publishdate in the future
      --cacheDir string            filesystem path to cache directory
      --cleanDestinationDir        remove files from destination not found in static directories
      --clock string               set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00
      --config string              config file (default is hugo.yaml|json|toml)
      --configDir string           config dir (default "config")
  -c, --contentDir string          filesystem path to content directory
      --debug                      debug output
  -d, --destination string         filesystem path to write files to
      --disableKinds strings       disable different kind of pages (home, RSS etc.)
      --enableGitInfo              add Git revision, date, author, and CODEOWNERS info to the pages
  -e, --environment string         build environment
      --forceSyncStatic            copy all files when static is changed.
      --gc                         enable to run some cleanup tasks (remove unused cache files) after the build
  -h, --help                       help for hugo
      --ignoreCache                ignores the cache directory
      --ignoreVendorPaths string   ignores any _vendor for module paths matching the given Glob pattern
  -l, --layoutDir string           filesystem path to layout directory
      --logLevel string            log level (debug|info|warn|error)
      --minify                     minify any supported output format (HTML, XML etc.)
      --noBuildLock                don't create .hugo_build.lock file
      --noChmod                    don't sync permission mode of files
      --noTimes                    don't sync modification time of files
      --panicOnWarning             panic on first WARNING log
      --poll string                set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes
      --printI18nWarnings          print missing translations
      --printMemoryUsage           print memory usage to screen at intervals
      --printPathWarnings          print warnings on duplicate target paths etc.
      --printUnusedTemplates       print warnings on unused templates.
      --quiet                      build in quiet mode
      --renderToMemory             render to memory (only useful for benchmark testing)
  -s, --source string              filesystem path to read files relative from
      --templateMetrics            display metrics about template executions
      --templateMetricsHints       calculate some improvement hints when combined with --templateMetrics
  -t, --theme strings              themes to use (located in /themes/THEMENAME/)
      --themesDir string           filesystem path to themes directory
      --trace file                 write trace to file (not useful in general)
  -v, --verbose                    verbose output
  -w, --watch                      watch filesystem for changes and recreate as needed

Use "hugo [command] --help" for more information about a command.

Elimina tutti i file rimanenti nella cartella poiché non sono più necessari.

$ sudo rm -rf *.*

Passo 5 - Crea un nuovo sito Hugo

Esegui il seguente comando per creare un nuovo sito web Hugo.

$ sudo hugo new site howtoforge

Otterrai il seguente output.

Congratulations! Your new Hugo site was created in /home/navjot/hugo/howtoforge.

Just a few more steps...

1. Change the current directory to /home/navjot/hugo/howtoforge.
2. Create or install a theme:
   - Create a new theme with the command "hugo new theme "
   - Install a theme from https://themes.gohugo.io/
3. Edit hugo.toml, setting the "theme" property to the theme name.
4. Create new content with the command "hugo new content /.".
5. Start the embedded web server with the command "hugo server --buildDrafts".

See documentation at https://gohugo.io/.

Esegui il comando tree per controllare la struttura del sito.

$ tree howtoforge/

Otterrai il seguente output.

howtoforge/
??? archetypes
?   ??? default.md
??? assets
??? content
??? data
??? hugo.toml
??? i18n
??? layouts
??? static
??? themes

8 directories, 2 files

Passa alla directory di Hugo.

$ cd howtoforge

Passo 6 - Installare il tema Hugo

Il passo successivo è installare un tema Hugo. Ci sono due modi per farlo e entrambi richiedono Git. Il primo metodo è semplice e consiste nel clonare il repository GitHub del tema. Questo è utile nella maggior parte dei casi ed è il modo più semplice per procedere. L’aggiornamento tramite questo metodo è facile, anche se questo metodo comporta il download di molte cose non necessarie. Ci sono alcuni temi, specialmente quelli a pagamento, che non hanno un repository GitHub da cui puoi scaricarli. Tali temi sono solitamente offerti come archivio compresso. In tal caso, devi estrarre manualmente l’archivio e mantenere il tema aggiornato manualmente. Il terzo metodo prevede di acquisire il tema come un sottogruppo Git. Questo richiede di inizializzare la tua directory Hugo come repository Git. Questo è il metodo consigliato ed è utile nel caso tu voglia distribuire il tuo sito su GitHub, Netlify o qualsiasi altro servizio di hosting. Spingere il tuo sito Hugo su GitHub garantisce anche backup automatici senza alcuno sforzo extra.

Copriamo tutti e tre i metodi. C’è un altro metodo per installare un tema Hugo utilizzando i moduli Go di Hugo. Questo metodo funziona solo se il tema è disponibile come modulo Hugo. Tuttavia, non lo tratteremo poiché è al di fuori dell’ambito di questo articolo.

Metodo 1 - Clonazione di un tema Hugo

Questo è il metodo più comunemente usato per installare un tema Hugo. Per il nostro tutorial, installeremo il tema Paper. Passa alla directory di Hugo.

$ cd /var/www/html/hugo/howtoforge

Esegui il seguente comando per clonare il repository GitHub del tema. Il flag --depth=1 preleva solo l’ultimo commit.

$ sudo git clone https://github.com/nanxiaobei/hugo-paper themes/Paper --depth=1

Per aggiornare il tema scaricato tramite questo metodo, esegui i seguenti comandi.

$ cd ~/hugo/howtoforge/themes/Paper
$ sudo git pull

Metodo 2 - Installare il tema da un archivio compresso

Questo è il metodo più semplice di tutti. Scarica l’archivio del file del tema. Il tema Paper non ha una sezione di rilascio, quindi non puoi scaricare una versione particolare. Pertanto, scaricheremo l’archivio master di GitHub. Puoi ottenere il link dalla sua pagina del repository GitHub.

$ cd ~
$ wget https://github.com/nanxiaobei/hugo-paper/archive/refs/heads/main.zip

Estrai l’archivio nella directory dei temi. Il flag -q sopprime l’output e il flag -d specifica la directory di output.

$  sudo unzip -q main.zip -d /var/www/html/hugo/howtoforge/themes/

Per aggiornare il tema, devi scaricare l’archivio più recente e estrarlo di nuovo. Assicurati di fare un backup di tutti i file che hai modificato.

I due metodi inferiori funzionano solo se il tuo sito Hugo è ospitato come progetto Git. Altrimenti, non è necessario utilizzare i seguenti metodi.

Metodo 3 - Installare il tema come sottogruppo Git

Passa alla cartella di Hugo.

$ cd /var/www/html/hugo/howtoforge

Inizializza la cartella di Hugo come repository Git. Questo è un passo importante. Questo ti consente di spingere il tuo sito Hugo su GitHub per utilizzarlo in seguito per l’hosting tramite Netlify, AWS, Vercel, ecc.

$ sudo git init

Esegui il seguente comando per aggiungere il tema come sottogruppo Git.

$ sudo git submodule add https://github.com/nanxiaobei/hugo-paper themes/paper

Per aggiornare un tema aggiunto come sottogruppo, esegui il seguente comando dalla cartella di Hugo.

$ sudo git submodule update --remote --merge

Configurare Hugo

Una volta installato il tema utilizzando un metodo a tua scelta, apri il file hugo.toml nella directory principale di Hugo. A partire da Hugo v0.110.0, il file di configurazione predefinito si chiama hugo.toml. Se stai utilizzando una versione precedente di Hugo, troverai il file config.toml nella tua directory Hugo.

$ sudo nano hugo.toml

Aggiungi la seguente riga al file. Il valore dovrebbe corrispondere alla directory del tema. Per il tema paper, sarebbe la directory hugo-paper-theme se hai utilizzato l’installazione dell’archivio o Paper se hai utilizzato il metodo di clonazione Git o sottogruppo sopra.

theme = 'hugo-paper-main'

Inoltre, cambia il valore della variabile baseURL nel nome di dominio del tuo sito. E cambia il title del tuo sito web.

Il tuo file di configurazione dovrebbe apparire come segue.

baseURL = 'https://hugo.example.com/'
languageCode = 'en-us'
title = 'Come Demo di Hugo'
theme = 'hugo-paper-main'

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Passo 7 - Crea post e pagine

Per creare un nuovo post, emetti il seguente comando.

$ sudo hugo new post/first-post.md

Questo creerà un nuovo file markdown first-post.md con il titolo First Post nella cartella content/post. Apri il file nel tuo editor preferito e modifica i dettagli e scrivi qualcosa per il tuo primo post.

+++
title = 'First Post'
date = 2023-10-30T03:32:38Z
draft = true
+++
## Introduzione

Questo è un testo grassetto, e questo è un testo *enfatizzato*.

Visita il sito web [Howtoforge](https://www.howtoforge.com)!

Rimuovi draft = true una volta che hai finito di scrivere il post. Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Per creare una nuova pagina, emetti il seguente comando.

$ sudo hugo new about.md

Questo creerà una nuova pagina intitolata About nella cartella content. Aprila e modificala nello stesso modo del post.

Configurare il tema

Prima di pubblicare, dobbiamo apportare alcune modifiche al tema per mostrare la barra dei menu. Queste modifiche verranno effettuate nel file di configurazione di Hugo e non nella configurazione del tema.

Passa alla directory di Hugo.

$ cd /var/www/html/hugo/howtoforge

Apri il file hugo.toml per la modifica.

$ sudo nano hugo.toml

Incolla il seguente codice in fondo.

author = "Navjot Singh"
copyright = "Copyright © 2023, Navjot Singh; tutti i diritti riservati."
paginate = 3
enableInlineShortcodes = true
# necessario per rendere HTML raw (es. , , , )
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

[menu]
  [[menu.main]]
    identifier = "about"
    name = "About"
    url = "/about/"
    weight = 10

[taxonomies]
category = "categories"
tag = "tags"
series = "series"

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Queste sono alcune impostazioni di base per rendere il sito funzionale. Qui abbiamo configurato il sito per visualizzare 3 post per pagina, mostrare la pagina About come voce di menu e impostare categorie, tag e serie di post. Abbiamo anche abilitato gli shortcode inline di Hugo e abilitato HTML raw per il render Markdown di Goldmark. Puoi disabilitarlo se non vuoi incorporare HTML raw nei tuoi post.

Passo 8 - Pubblica il sito Hugo

Per costruire e pubblicare il sito, esegui semplicemente il seguente comando.

$ sudo hugo

Otterrai un output simile.

Start building sites …
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio


                   | EN
-------------------+-----
  Pages            |  7
  Paginator pages  |  0
  Non-page files   |  0
  Static files     | 11
  Processed images |  0
  Aliases          |  3
  Sitemaps         |  1
  Cleaned          |  0

Total in 46 ms

Questo crea e pubblica il sito web statico Hugo nella cartella public. Questi sono i file che dobbiamo specificare nella configurazione di Nginx affinché il sito funzioni. Esegui di nuovo il comando dopo aver apportato modifiche e il tuo sito web verrà aggiornato in un attimo.

Passo 9 - Installare SSL

Prima di procedere, dobbiamo installare lo strumento Certbot e installare un certificato SSL per il nostro dominio.

Per installare Certbot, utilizzeremo l’installer di pacchetti Snapd. Snapd porta sempre l’ultima versione stabile di Certbot e dovresti usarlo.

Lo strumento Snapd richiede il repository Epel per funzionare.

$ sudo dnf install epel-release -y

Utilizzeremo Snapd per installare Certbot. Installa Snapd.

$ sudo dnf install snapd -y

Abilita e avvia il servizio Snap.

$ sudo systemctl enable snapd.socket --now

Crea i collegamenti necessari affinché Snapd funzioni.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Assicurati che la tua versione di snapd sia aggiornata. Aspetta un paio di secondi prima di emettere i seguenti comandi.

$ sudo snap install core
$ sudo snap refresh core

Installa Certbot.

$ sudo snap install --classic certbot

Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifica l’installazione.

$ certbot --version
certbot 2.7.3

Genera un certificato SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d hugo.example.com

Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/hugo.example.com sul tuo server.

Genera un certificato Diffie-Hellman group.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Controlla il servizio di pianificazione del rinnovo di Certbot.

$ sudo systemctl list-timers

Troverai snap.certbot.renew.service come uno dei servizi programmati per l’esecuzione.

NEXT                        LEFT          LAST                        PASSED    UNIT                         ACTIVATES
Wed 2023-10-29 10:00:17 UTC 57min left    Wed 2023-10-18 08:49:39 UTC 12min ago dnf-makecache.timer          dnf-makecache.service
Wed 2023-10-29 12:18:00 UTC 3h 15min left -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Thu 2023-10-30 00:00:00 UTC 14h left      Wed 2023-10-18 08:10:08 UTC 52min ago logrotate.timer              logrotate.service

Fai una prova del processo per controllare se il rinnovo SSL funziona correttamente.

$ sudo certbot renew --dry-run

Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.

Passo 10 - Configurare Nginx

Crea e apri il file /etc/nginx/conf.d/hugo.conf per la modifica.

$ sudo nano /etc/nginx/conf.d/hugo.conf

Incolla il seguente codice nel file hugo.conf. Sostituisci tutte le istanze di hugo.example.com con il tuo dominio.

## enforce HTTPS
server {
  listen 80;
  listen [::]:80;
  server_name hugo.example.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name hugo.example.com;

  root /home/navjot/hugo/howtoforge/public;
  index index.html
  
  access_log /var/log/nginx/hugo.access.log;
  error_log /var/log/nginx/hugo.error.log;
  client_max_body_size 20m;
  gzip on;

  http2_push_preload on; # Enable HTTP/2 Server Push

  ssl_certificate     /etc/letsencrypt/live/hugo.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hugo.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/hugo.example.com/chain.pem;
  ssl_session_timeout 1d;

  # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
  ssl_protocols TLSv1.2 TLSv1.3;

  # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
  # prevent replay attacks.
  #
  # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
  ssl_early_data on;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
  ssl_session_cache shared:SSL:50m;
  ssl_session_tickets off;

  # OCSP Stapling ---
  # fetch OCSP records from URL in ssl_certificate and cache them
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  add_header X-Early-Data $tls1_3_early_data;
  
  location / {
      try_files $uri $uri/ =404;
  }
  
  # Media
  location ~* \\.jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc$ {
      expires 30d;
  }

  # CSS and Js
  location ~* \\.css|js$ {
      expires 7d;
  }
}

# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the "$ssl_early_data" variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

La configurazione sopra reindirizzerà tutte le richieste HTTP a HTTPS e fungerà da proxy per il servizio Hugo per servirlo tramite il tuo dominio.

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Apri il file /etc/nginx/nginx.conf per la modifica.

$ sudo nano /etc/nginx/nginx.conf

Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Verifica la tua configurazione Nginx.

$ sudo nginx -t

Se non vedi errori, significa che sei a posto. Ricarica il server Nginx.

$ sudo systemctl reload nginx

Passo 11 - Configurare SELinux

Cambia il contesto di sicurezza del file per OpenEMR.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/hugo/howtoforge/public(/.*)?"

Applica la politica.

$ sudo restorecon -Rv /var/www/html/hugo/howtoforge/public/

Consenti a Nginx di connettersi alla rete.

$ sudo setsebool -P httpd_can_network_connect 1

Passo 12 - Esegui il sito

Ora puoi verificare la tua installazione aprendo https://hugo.example.com nel tuo browser web. Otterrai la seguente pagina che indica un’installazione riuscita.

Homepage di Hugo

Passo 13 - Aggiorna Hugo

Aggiornare Hugo è piuttosto semplice. Scarica l’ultima release dalla pagina GitHub di Hugo.

$ cd /var/www/html/hugo
$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Estrai l’archivio.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

E sostituisci il binario Hugo con l’ultima versione. Il flag -f sovrascrive il binario senza chiedere. Puoi usare il flag -i invece se vuoi essere avvisato per la sovrascrittura.

$ sudo mv -f hugo /usr/bin/hugo

Questo è tutto. Aggiornare Hugo è semplice come sostituire il binario.

Passo 14 - Backup e Ripristino di Hugo

Per fare un backup, crea un archivio dell’intera cartella Hugo.

$ cd /var/www/html/hugo
$ sudo tar -czvf howtoforge.tar.gz howtoforge/

Per ripristinarlo su un nuovo server, estrai l’archivio e installa il binario e sei a posto.

$ cd /var/www/html/hugo
$ sudo tar -xzf howtoforge.tar.gz

Conclusione

Questo conclude il nostro tutorial su come impostare il generatore di siti statici Hugo sul tuo server Rocky Linux 9 utilizzando Nginx. Se hai domande o feedback, condividili nei commenti qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.