10 Labing Gigamit nga Nginx nga mga Sugo Ang Matag Linux User Kinahanglan Mahibalo


Ang Nginx (gipahayag nga Engine x) kay libre, open-source, high-performance, scalable, kasaligan, full-feature ug popular nga HTTP ug reverse proxy server, mail proxy server, ug generic TCP/UDP proxy server.

Ang Nginx ilado kaayo tungod sa yano nga pag-configure niini, ug ubos nga pagkonsumo sa kapanguhaan tungod sa taas nga pasundayag niini, gigamit kini aron magamit ang daghang mga site nga adunay daghang trapiko sa web, sama sa GitHub, SoundCloud, Dropbox, Netflix, WordPress ug daghan pa.

Niini nga giya, among ipasabut ang pipila sa labing kasagarang gigamit nga mga sugo sa pagdumala sa serbisyo sa Nginx nga, isip usa ka developer o system administrator, kinahanglan nimo nga ibutang sa imong mga tudlo. Atong ipakita ang mga sugo alang sa Systemd ug SysVinit.

Ang tanan niini nga mosunod nga listahan sa Nginx popular nga mga sugo kinahanglan nga ipatuman ingon nga usa ka gamut o sudo user ug kinahanglan nga magtrabaho sa bisan unsa nga modernong Linux distribution sama sa CentOS, RHEL, Debian, Ubuntu ug Fedora.

I-install ang Nginx Server

Aron ma-install ang Nginx web server, gamita ang imong default distribution package manager sama sa gipakita.

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

Susiha ang Bersyon sa Nginx

Aron masusi ang bersyon sa Nginx web server nga na-install sa imong Linux system, padagana ang mosunod nga sugo.

$ nginx -v

nginx version: nginx/1.12.2

Ang sugo sa ibabaw nagpakita lang sa numero sa bersyon. Kung gusto nimo tan-awon ang bersyon ug i-configure ang mga kapilian unya gamita ang -V nga bandila sama sa gipakita.

$ 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'

Susiha ang Nginx Configuration Syntax

Sa dili ka pa magsugod sa serbisyo sa Nginx, mahimo nimong susihon kung husto ba ang syntax sa pag-configure niini. Labi na nga mapuslanon kini kung nakahimo ka og mga pagbag-o o nagdugang usa ka bag-ong configuration sa kasamtangan nga istruktura sa configuration.

Aron sulayan ang configuration sa Nginx, padagana ang mosunod nga sugo.

$ sudo nginx -t

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

Mahimo nimong sulayan ang pag-configure sa Nginx, ihulog kini ug paggawas gamit ang bandila nga -T sama sa gipakita.

$ 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 {
        }
    }

....

Pagsugod sa Nginx Service

Aron masugdan ang serbisyo sa Nginx, pagdagan ang mosunud nga mando. Timan-i nga kini nga proseso mahimong mapakyas kung ang configuration syntax dili OK.

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

I-enable ang Nginx Service

Ang nauna nga mando nagsugod lamang sa serbisyo sa kasamtangan, aron mahimo kini nga awtomatikong magsugod sa oras sa pag-boot, pagdagan ang mosunud nga mando.

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

I-restart ang Nginx Service

Aron ma-restart ang serbisyo sa Nginx, usa ka aksyon nga mohunong ug dayon magsugod sa serbisyo.

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

Tan-awa ang Nginx Service Status

Mahimo nimong susihon ang kahimtang sa serbisyo sa Nginx sama sa mosunod. Kini nga sugo nagpakita sa impormasyon sa kahimtang sa run time mahitungod sa serbisyo.

$ 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.
 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.

I-reload ang Serbisyo sa Nginx

Aron sultihan ang Nginx nga i-reload ang configuration niini, gamita ang mosunod nga command.

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

Hunonga ang Serbisyo sa Nginx

Kung gusto nimong hunongon ang serbisyo sa Nginx sa usa ka hinungdan o sa lain, gamita ang mosunud nga mando.

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

Ipakita ang Tabang sa Nginx Command

Aron makakuha usa ka dali nga giya sa pakisayran sa tanan nga mga sugo ug kapilian sa Nginx, gamita ang pagsunod sa mando.

$ 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=[[email ]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
...

Mahimo usab nimo nga basahon kining mosunod nga mga artikulo nga may kalabutan sa Nginx.

  1. Ang Kinatibuk-ang Giya sa Pagsiguro, Pagpatig-a ug Pagpauswag sa Performance sa Nginx Web Server
  2. Amplify – Ang Pag-monitor sa NGINX Nahimong Sayon
  3. ngxtop – Pag-monitor sa Nginx Log Files sa Real Time sa Linux
  4. Unsaon Pag-instalar sa Nginx sa Virtual Hosts ug SSL Certificate
  5. Unsaon Pagtago sa Bersyon sa Nginx Server sa Linux

Kana lang sa pagkakaron! Niini nga giya, among gipatin-aw ang pipila sa labing kasagarang gigamit nga mga sugo sa pagdumala sa serbisyo sa Nginx nga kinahanglan nimong masayran, lakip ang pagsugod, pagpagana, pag-restart ug paghunong sa Nginx. Kung aduna kay mga dugang o pangutana nga ipangutana, gamita ang feedback form sa ubos.