Installa la condivisione NFS su Debian
NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF
Nginx è un software server web open source progettato con alta concorrenza in mente, che può essere utilizzato come server HTTP / HTTPS, server proxy inverso, server proxy di posta, bilanciamento del carico software, terminatore TLS, server di cache e altro ancora!
È un software estremamente modulare. Anche alcune delle parti apparentemente "integrate" del software, come GZIP o SSL, sono in realtà create come moduli che possono essere abilitati e disabilitati durante il tempo di compilazione.
Ha moduli core (nativi) e moduli di terze parti (esterni) creati dalla community. Al momento, ci sono oltre un centinaio di moduli di terze parti che possiamo utilizzare.
Scritto in C, è un software veloce e leggero.
L'installazione di Nginx dal codice sorgente è relativamente semplice: scarica l'ultima versione del codice sorgente Nginx, configuralo, crearlo e installarlo.
Dovrai scegliere se scaricare la linea principale o una versione stabile, ma costruirle è la stessa.
In questa guida, compileremo una versione mainline di Nginx su Debian 10 (buster). Useremo tutti i moduli disponibili nella versione open source di Nginx.
Probabilmente ti chiedi perché si dovrebbe compilare Nginx da una fonte quando è possibile usare pacchetti preparati. Ecco alcuni motivi per cui potresti voler compilare tu stesso un software specifico:
Nginx Open Source è disponibile in due versioni:
Nginx ha due tipi di moduli che è possibile utilizzare: moduli core e moduli di terze parti.
Gli sviluppatori principali di Nginx costruiscono moduli core e fanno parte del software stesso.
La community crea moduli di terze parti e puoi utilizzarli per estendere le funzionalità. Ci sono molti utili moduli di terze parti.
I moduli statici esistono in Nginx dalla prima versione. I moduli dinamici sono stati introdotti con Nginx 1.9.11+ a febbraio 2016.
Con i moduli statici, un set di moduli che costituisce un binario Nginx viene corretto in fase di compilazione dallo ./configure
script. Uso --with-foo_bar_module
o --add-module=PATH
sintassi dei moduli statici .
Per compilare un modulo core (standard) come dinamico aggiungiamo =dynamic
, ad esempio --with-http_image_filter_module=dynamic
.
Per compilare un modulo di terze parti come dinamico, utilizziamo la --add-dynamic-module=/path/to/module
sintassi e quindi li cariciamo utilizzando la load_module
direttiva nel contesto globale del nginx.conf
file.
Rispetto ad altri software UNIX / Linux, Nginx è piuttosto leggero e non ha molte dipendenze da libreria. La configurazione di build predefinita dipende solo da 3 librerie da installare: OpenSSL / LibreSSL / BoringSSL, Zlib e PCRE.
NOTA : Nginx può anche essere compilato su librerie crittografiche LibreSSL e BoringSSL anziché OpenSSL.
Controlla la versione di Debian.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Crea un utente normale con sudo
accesso.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
NOTA : sostituisci johndoe
con il tuo nome utente .
Passa a un nuovo utente.
su - johndoe
Imposta il fuso orario.
sudo dpkg-reconfigure tzdata
Aggiorna il software del tuo sistema operativo.
sudo apt update && sudo apt upgrade -y
Installa i pacchetti necessari.
sudo apt install -y software-properties-common ufw
Nginx è un programma scritto in C, quindi dovrai prima installare uno strumento di compilazione. Installare build-essential
, git
e tree
.
sudo apt install -y build-essential git tree
Scarica l'ultima versione mainline del codice sorgente Nginx e decomprime l'archivio del codice sorgente. Il codice sorgente di Nginx è distribuito come archivio compresso, come la maggior parte dei software Unix e Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Scarica il codice sorgente delle dipendenze Nginx obbligatorio ed estrailo.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
Installa dipendenze Nginx opzionali.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Pulisci tutti i .tar.gz
file. Non ne abbiamo più bisogno.
rm -rf *.tar.gz
Immettere la directory di origine Nginx.
cd ~/nginx-1.17.2
Per una buona misura elenca directory e file che compongono il codice sorgente di Nginx tree
.
tree -L 2 .
Copia la pagina del manuale in /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
Per assistenza, è possibile visualizzare un elenco completo di opzioni di compilazione Nginx aggiornate eseguendo quanto segue.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Configura, compila e installa Nginx.
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
Dopo la compilazione, vai alla tua home ( ~
) directory.
cd ~
Collegamento simbolico /usr/lib/nginx/modules
a /etc/nginx/modules
. Questo è un posto standard per i moduli Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Stampa la versione di Nginx, la versione del compilatore e configura i parametri dello script.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
Crea un gruppo di sistema e un utente Nginx.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
Controlla la sintassi di Nginx e potenziali errori.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
Creare un file di unità systemd Nginx.
sudo vim /etc/systemd/system/nginx.service
Popolare il /etc/systemd/system/nginx.service
file con il seguente contenuto.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Abilita Nginx per l'avvio all'avvio e avvia Nginx immediatamente.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Controlla se Nginx si avvierà automaticamente dopo un riavvio.
sudo systemctl is-enabled nginx.service
# enabled
Controlla lo stato.
sudo systemctl status nginx.service
NOTA : è possibile verificare che Nginx sia in esecuzione accedendo al dominio o all'indirizzo IP del proprio sito in un browser Web. Vedrai la pagina di benvenuto di Nginx. Questo è un indicatore che Nginx è attivo e in esecuzione sul tuo VPS.
Crea un profilo di applicazione Nginx UFW.
sudo vim /etc/ufw/applications.d/nginx
Copia / incolla il seguente contenuto nel /etc/ufw/applications.d/nginx
file.
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
Convalida che i profili dell'applicazione UFW vengano creati e riconosciuti.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
Nginx, per impostazione predefinita, genera .default
file di backup in /etc/nginx
. Rimuovi i .default
file dalla /etc/nginx
directory.
sudo rm /etc/nginx/*.default
Inserire l'evidenziazione della sintassi della configurazione di Nginx per l'editor Vim in ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
NOTA : eseguendo il passaggio precedente, si otterrà una bella evidenziazione della sintassi durante la modifica dei file di configurazione di Nginx nell'editor Vim.
Creare conf.d
, snippets
, sites-available
e sites-enabled
le directory in /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Modifica le autorizzazioni e la proprietà del gruppo dei file di registro di Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Creare una configurazione di rotazione del registro per Nginx.
sudo vim /etc/logrotate.d/nginx
Popolare il file con il testo seguente, quindi salva ed esci.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Rimuovi tutti i file scaricati dalla home directory.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Questo è tutto. Ora hai installato l'ultima versione di Nginx. Viene compilato staticamente su alcune importanti librerie come OpenSSL. Spesso, la versione di OpenSSL fornita dal sistema è obsoleta. Usando questo metodo di installazione con una versione più recente di OpenSSL, puoi trarre vantaggio dai moderni cifrari come CHACHA20_POLY1305
e dai protocolli come TLS 1.3 che sono disponibili in OpenSSL 1.1.1
. Inoltre, compilando il tuo binario, sei in grado di personalizzare la funzionalità che Nginx fornirà, che è molto più flessibile dell'installazione di un binario pre-costruito.
NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF
Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare
Golang è un linguaggio di programmazione sviluppato da Google. Grazie alla sua versatilità, semplicità e affidabilità, Golang è diventato uno dei più popolari
IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan
Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud
Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu
Introduzione Un modo semplice per configurare un server VPN su Debian è con PiVPN. PiVPN è un programma di installazione e wrapper per OpenVPN. Crea semplici comandi per te t
Usi un sistema diverso? Brotli è un nuovo metodo di compressione con un rapporto di compressione migliore di Gzip. Il suo codice sorgente è ospitato pubblicamente su Github. Thi
Usi un sistema diverso? Introduzione Kanboard è un programma software di gestione dei progetti gratuito e open source progettato per facilitare e visualizzare
Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare
Introduzione Cacti è uno strumento open source di monitoraggio e rappresentazione grafica interamente basato sui dati RRD. Attraverso Cacti puoi monitorare quasi ogni tipo di devic
Java è un linguaggio di programmazione / macchina virtuale indipendente dalla piattaforma. In questo tutorial, installeremo limplementazione OpenJDK di Java 8 su un Debian
Git è un sistema di controllo della versione (VCS) che consente il rilevamento delle modifiche al codice. In questo tutorial, vedremo come installare un server HTTP (S) Git, un
Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL
Introduzione MySQL ha una grande funzionalità nota come viste. Le viste sono query memorizzate. Pensa a loro come alias per una query altrimenti lunga. In questa guida,
Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord
Usi un sistema diverso? Matomo (precedentemente Piwik) è una piattaforma di analisi open source, unalternativa aperta a Google Analytics. La fonte Matomo è ospitata o
Munin è uno strumento di monitoraggio per rilevare processi e risorse nella macchina e presenta le informazioni in grafici attraverso uninterfaccia web. Usa il seguito
Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC
Usi un sistema diverso? NodeBB è un forum basato su Node.js. Utilizza socket Web per interazioni istantanee e notifiche in tempo reale. Codice sorgente NodeBB i
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.