Ricerca nel sito web

I 10 comandi Nginx più utilizzati che ogni utente Linux deve conoscere


Nginx (pronunciato Engine x) è un server HTTP e proxy inverso gratuito, open source, ad alte prestazioni, scalabile, affidabile, completo e popolare, un server proxy di posta e un TCP// Server proxy UDP.

Nginx è ben noto per la sua configurazione semplice e il basso consumo di risorse grazie alle sue elevate prestazioni. Viene utilizzato per alimentare diversi siti ad alto traffico sul Web, come GitHub , SoundCloud, Dropbox, Netflix, WordPress e molti altri.

Leggi anche: 3 trucchi utili che ogni utente Linux deve conoscere

In questa guida spiegheremo alcuni dei comandi di gestione dei servizi Nginx più comunemente utilizzati che, come sviluppatore o amministratore di sistema, dovresti tenere a portata di mano. Mostreremo i comandi sia per Systemd che per SysVinit.

Tutti i seguenti comandi popolari Nginx devono essere eseguiti come utente root o sudo e dovrebbero funzionare su qualsiasi distribuzione Linux moderna come CentOS , RHEL, Debian, Ubuntu e Fedora.

Installa il server Nginx

Per installare il server web Nginx, utilizza il gestore pacchetti di distribuzione predefinito come mostrato.


sudo yum install epel-release && yum install nginx   [On CentOS/RHEL]
sudo dnf install nginx                               [On Fedora]
sudo apt install nginx                               [On Debian/Ubuntu]

Controlla la versione di Nginx

Per verificare la versione del server web Nginx installata sul tuo sistema Linux, esegui il comando seguente.

nginx -v

nginx version: nginx/1.12.2

Il comando precedente mostra semplicemente il numero di versione. Se vuoi visualizzare la versione e configurare le opzioni, usa il flag -V come mostrato.

nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --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_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-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

Controlla la sintassi di configurazione di Nginx

Prima di avviare effettivamente il servizio Nginx, puoi verificare se la sua sintassi di configurazione è corretta. Ciò è particolarmente utile se hai apportato modifiche o aggiunto una nuova configurazione alla struttura di configurazione esistente.

Per testare la configurazione Nginx, esegui il comando seguente.

sudo nginx -t

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

Puoi testare la configurazione Nginx, scaricarla ed uscire utilizzando il flag -T come mostrato.

sudo nginx -T
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
configuration file /etc/nginx/nginx.conf:
For more information on configuration, see:
  * Official English Documentation: http://nginx.org/en/docs/
  * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

....

Avvia il servizio Nginx

Per avviare il servizio Nginx, esegui il comando seguente. Tieni presente che questo processo potrebbe non riuscire se la sintassi di configurazione non è OK.

sudo systemctl start nginx #systemd
OR
sudo service nginx start   #sysvinit

Abilita il servizio Nginx

Nel frattempo il comando precedente avvia il servizio solo temporaneamente; per abilitarlo all'avvio automatico all'avvio, eseguire il comando seguente.

sudo systemctl enable nginx #systemd
OR
sudo service nginx enable   #sysv init

Riavvia il servizio Nginx

Per riavviare il servizio Nginx, un'azione che interromperà e quindi avvierà il servizio.

sudo systemctl restart nginx #systemd
OR
sudo service nginx restart   #sysv init

Visualizza lo stato del servizio Nginx

Puoi controllare lo stato del servizio Nginx come segue. Questo comando mostra le informazioni sullo stato di runtime del servizio.

sudo systemctl status nginx #systemd
OR
sudo service nginx status   #sysvinit
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@tecmint ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-03-05 05:27:15 EST; 2min 59s ago
 Main PID: 31515 (nginx)
   CGroup: /system.slice/nginx.service
           ├─31515 nginx: master process /usr/sbin/nginx
           └─31516 nginx: worker process

Mar 05 05:27:15 linux-console.net systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 05 05:27:15 linux-console.net nginx[31509]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 05 05:27:15 linux-console.net nginx[31509]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 05 05:27:15 linux-console.net systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
Mar 05 05:27:15 linux-console.net systemd[1]: Started The nginx HTTP and reverse proxy server.

Ricarica il servizio Nginx

Per dire a Nginx di ricaricare la sua configurazione, utilizza il seguente comando.

sudo systemctl reload nginx #systemd
OR
sudo service nginx reload   #sysvinit

Arresta il servizio Nginx

Se vuoi interrompere il servizio Nginx per un motivo o per l'altro, utilizza il seguente comando.

sudo systemctl stop nginx #systemd
OR
sudo service nginx stop   #sysvinit

Mostra la guida del comando Nginx

Per ottenere una guida di riferimento semplice di tutti i comandi e le opzioni di Nginx, utilizza il seguente comando.

systemctl -h nginx
systemctl [OPTIONS...] {COMMAND} ...

Query or send control commands to the systemd manager.

  -h --help           Show this help
     --version        Show package version
     --system         Connect to system manager
  -H --host=[USER@]HOST
                      Operate on remote host
  -M --machine=CONTAINER
                      Operate on local container
  -t --type=TYPE      List units of a particular type
     --state=STATE    List units with particular LOAD or SUB or ACTIVE state
  -p --property=NAME  Show only properties by this name
  -a --all            Show all loaded units/properties, including dead/empty
                      ones. To list all units installed on the system, use
                      the 'list-unit-files' command instead.
  -l --full           Don't ellipsize unit names on output
  -r --recursive      Show unit list of host and local containers
     --reverse        Show reverse dependencies with 'list-dependencies'
     --job-mode=MODE  Specify how to deal with already queued jobs, when
                      queueing a new job
     --show-types     When showing sockets, explicitly show their type
  -i --ignore-inhibitors
...

Potrebbe interessarti anche leggere i seguenti articoli relativi a Nginx.

  1. La guida definitiva per proteggere, rafforzare e migliorare le prestazioni del server Web Nginx
  2. Amplifica: il monitoraggio NGINX diventa semplice
  3. ngxtop: monitora i file di registro Nginx in tempo reale in Linux
  4. Come installare Nginx con host virtuali e certificato SSL
  5. Come nascondere la versione del server Nginx in Linux

È tutto per ora! In questa guida, abbiamo spiegato alcuni dei comandi di gestione dei servizi Nginx più comunemente utilizzati che dovresti conoscere, inclusi l'avvio, l'abilitazione, il riavvio e l'arresto di Nginx. Se hai integrazioni o domande da porre, utilizza il modulo di feedback qui sotto.