Com compilar Nginx des de la font a Fedora 25

NGINX es pot utilitzar com a servidor HTTP/HTTPS, servidor intermediari invers, servidor intermediari de correu, equilibrador de càrrega, terminador TLS o servidor de memòria cau. És bastant modular pel seu disseny. Disposa de mòduls natius i de tercers creats per la comunitat. Escrit en llenguatge de programació C, és un programari molt ràpid i lleuger.

NOTE: NGINX has two version streams that run in parallel - stable and mainline. Both versions can be used on a production server. It is recommended to use the mainline version in production.

Instal·lar NGINX des del codi font és relativament "fàcil": descarregueu la darrera versió del codi font NGINX, configureu-lo, creeu-lo i instal·leu-lo.

En aquest tutorial faré servir la versió principal , que és la 1.13.3 en el moment d'escriure. Actualitzeu els números de versió en conseqüència quan estiguin disponibles versions més noves.

Requisits per crear NGINX des de la font

Requisits obligatoris:

  • Versió de la biblioteca OpenSSL entre 1.0.2 - 1.1.0
  • versió de la biblioteca zlib entre 1.1.3 - 1.2.11
  • Versió de la biblioteca PCRE entre 4.4 - 8.41
  • Compilador GCC

Requisits opcionals:

Abans que comencis

  1. Crea un usuari habitual amb sudoaccés :

  2. Canvia al nou usuari:

    su - <username>
    
  3. Actualització del sistema:

    sudo dnf check-update || sudo dnf upgrade -y
    

Creeu NGINX des de la font

  1. Instal·leu "Eines de desenvolupament", l'editor Vim, wget i gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Baixeu la darrera versió principal del codi font NGINX i descarregueu-lo:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Baixeu el codi font de les dependències NGINX i extreu-los:

    NGINX depends on 3 libraries: PCRE, zlib and OpenSSL:

    # PCRE version 8.41
    wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz && tar xzvf pcre-8.41.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.0f
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
    
  4. Baixeu i instal·leu dependències opcionals de NGINX:

    # perl
    sudo dnf install -y perl perl-devel perl-ExtUtils-Embed
    
    # libxslt
    sudo dnf install -y libxslt libxslt-devel
    
    # libxml2
    sudo dnf install -y libxml2 libxml2-devel
    
    # libgd
    sudo dnf install -y gd gd-devel
    
    # GeoIP
    sudo dnf install -y GeoIP GeoIP-devel
    
    # Libatomic_Ops
    sudo dnf install -y libatomic_ops libatomic_ops-devel
    
  5. Elimina tots els .tar.gzfitxers. Ja no els necessitem:

    rm -rf *.tar.gz
    
  6. Aneu al directori font de NGINX:

    cd ~/nginx-1.13.3
    
  7. Per fer una bona mesura, enumereu els fitxers i directoris de codi font NGINX:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Copieu la pàgina del manual de NGINX a /usr/share/man/man8/:

    sudo cp ~/nginx-1.13.3/man/nginx.8 /usr/share/man/man8/
    sudo gzip /usr/share/man/man8/nginx.8
    # Check that Man page for NGINX is working
    man nginx
    
  9. Per obtenir ajuda, podeu llistar els commutadors de configuració disponibles executant:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Configureu, compileu i instal·leu NGINX:

    ./configure --prefix=/etc/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 \
                --pid-path=/var/run/nginx.pid \
                --lock-path=/var/run/nginx.lock \
                --user=nginx \
                --group=nginx \
                --build=Fedora \
                --builddir=nginx-1.13.3 \
                --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=/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.41 \
                --with-pcre-jit \
                --with-zlib=../zlib-1.2.11 \
                --with-openssl=../openssl-1.1.0f \
                --with-openssl-opt=no-nextprotoneg \
                --with-debug
    
    make
    sudo make install
    
  11. Imprimiu la versió de NGINX, la versió del compilador i configureu els paràmetres de l'script:

    nginx -V
    
    # nginx version: nginx/1.13.3 (Fedora)
    # built by gcc 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx . . .
    # . . .
    
  12. Creeu l'usuari i el grup del sistema NGINX:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Comproveu la sintaxi i els possibles errors:

    sudo nginx -t
    # Will throw this error: nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
    # Just create directory
    sudo mkdir -p /var/cache/nginx/ && sudo nginx -t
    
  14. Creeu un fitxer d'unitat systemd per a NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Copieu/enganxeu el contingut següent:

    NOTE: The location of the PID file and the NGINX binary may be different depending on how NGINX was compiled.

    [Unit]
    Description=Nginx - A high performance web server and a reverse proxy server
    Documentation=http://nginx.org/en/docs/
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
    ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
    ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
    ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /var/run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed
    
    [Install]
    WantedBy=multi-user.target
    
  16. Inicia NGINX:

    sudo systemctl start nginx.service
    
  17. Habiliteu NGINX perquè s'iniciï automàticament a l'arrencada:

    sudo systemctl enable nginx.service
    
  18. Comproveu si NGINX s'iniciarà després d'un reinici:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Comproveu si NGINX s'està executant:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Reinicieu el vostre VPS per verificar que NGINX s'iniciï automàticament:

    sudo shutdown -r now
    
  21. Elimina els fitxers arcaics del /etc/nginx/directori:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Col·loqueu els fitxers de ressaltat de sintaxi de la configuració de NGINX per vima ~/.vim/. Se us presentarà un bon ressaltat de sintaxi quan editeu el fitxer de configuració NGINX:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Feu un conf.d/directori al /etc/nginx/directori. En aquest directori, podeu col·locar servidors virtuals i aigües amunt:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Elimineu els directoris i fitxers extrets del vostre directori d'inici:

    rm -rf nginx-1.13.3/ openssl-1.1.0f/ pcre-8.41/ zlib-1.2.11/
    

Conclusió

Això és. Ara teniu instal·lada la versió més recent de NGINX. Es compila estàticament amb algunes biblioteques importants com OpenSSL. Sovint, la versió del sistema OpenSSL està obsoleta. Mitjançant aquest mètode d'instal·lació amb una versió més nova d'OpenSSL, podeu aprofitar nous xifratges CHACHA20_POLY1305com TLS 1.3 que estaran disponibles a OpenSSL 1.1.1(que no s'ha publicat en el moment d'escriure).


Com instal·lar BigTree CMS en un Fedora 26 LAMP VPS

Com instal·lar BigTree CMS en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? BigTree CMS 4.2 és un sistema de gestió de continguts (CMS) ràpid i lleuger, gratuït i de codi obert, amb una àmplia

Com instal·lar Koel a Fedora 28

Com instal·lar Koel a Fedora 28

Utilitzeu un sistema diferent? Koel és una senzilla aplicació de reproducció d'àudio personal basada en web escrita en Vue al costat del client i Laravel al costat del servidor. Koe

Com instal·lar Grav CMS a Fedora 28

Com instal·lar Grav CMS a Fedora 28

Utilitzeu un sistema diferent? Grav és un CMS de fitxer pla de codi obert escrit en PHP. El codi font de Grav està allotjat públicament a GitHub. Aquesta guia us mostrarà com t

Instal·lant Akaunting a Fedora 28

Instal·lant Akaunting a Fedora 28

Utilitzeu un sistema diferent? Akaunting és un programari de comptabilitat en línia gratuït, de codi obert i dissenyat per a petites empreses i autònoms. Està construït amb enginy

Com instal·lar Tiny Tiny RSS Reader en un Fedora 26 LAMP VPS

Com instal·lar Tiny Tiny RSS Reader en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? Tiny Tiny RSS Reader és un lector i agregador de notícies basats en web (RSS/Atom) de codi obert i gratuït, dissenyat per

Com instal·lar InvoicePlane a Fedora 28

Com instal·lar InvoicePlane a Fedora 28

Utilitzeu un sistema diferent? InvoicePlane és una aplicació de facturació gratuïta i de codi obert. El seu codi font es pot trobar en aquest dipòsit de Github. Aquesta guia

Instal·leu un servidor de Minecraft a Fedora 26

Instal·leu un servidor de Minecraft a Fedora 26

Utilitzeu un sistema diferent? En aquest tutorial, us guiaré a través de la configuració d'un servidor de Minecraft en un VPS SSD d'alt rendiment a Vultr. Aprendràs ho

Com compilar Nginx des de la font a Fedora 25

Com compilar Nginx des de la font a Fedora 25

Utilitzeu un sistema diferent? NGINX es pot utilitzar com a servidor HTTP/HTTPS, servidor intermediari invers, servidor intermediari de correu, equilibrador de càrrega, terminador TLS o cachin

Com instal·lar Pagekit 1.0 CMS en un Fedora 26 LAMP VPS

Com instal·lar Pagekit 1.0 CMS en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? Pagekit 1.0 CMS és un sistema de gestió de continguts (CMS) bonic, modular, extensible i lleuger, gratuït i de codi obert amb

Com instal·lar Subrion 4.1 CMS en un Fedora 26 LAMP VPS

Com instal·lar Subrion 4.1 CMS en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? Subrion 4.1 CMS és un sistema de gestió de continguts (CMS) de codi obert potent i flexible que ofereix un contingut intuïtiu i clar.

Instal·leu TaskServer (taskd) a Fedora 26

Instal·leu TaskServer (taskd) a Fedora 26

Utilitzeu un sistema diferent? TaskWarrior és una eina de gestió del temps de codi obert que és una millora de l'aplicació Todo.txt i els seus clons. A causa de th

Com instal·lar CMS Made Simple 2.2 en un Fedora 26 LAMP VPS

Com instal·lar CMS Made Simple 2.2 en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? CMS Made Simple 2.2 és un sistema de gestió de continguts (CMS) flexible i extensible, gratuït i de codi obert dissenyat intel·ligentment per b

Instal·lant Bro IDS a Fedora 25

Instal·lant Bro IDS a Fedora 25

Utilitzeu un sistema diferent? Introducció Bro és un analitzador de trànsit de xarxa de codi obert. És principalment un monitor de seguretat que inspecciona tot el trànsit d'una línia

Com instal·lar X-Cart 5 a Fedora 31

Com instal·lar X-Cart 5 a Fedora 31

Utilitzeu un sistema diferent? X-Cart és una plataforma de comerç electrònic de codi obert extremadament flexible amb un munt de funcions i integracions. El codi font de X-Cart és hoste

Com instal·lar Matomo Analytics a Fedora 28

Com instal·lar Matomo Analytics a Fedora 28

Utilitzeu un sistema diferent? Matomo (abans Piwik) és una plataforma d'anàlisi de codi obert, una alternativa oberta a Google Analytics. La font de Matomo està allotjada o

Com instal·lar MyBB a Fedora 28

Com instal·lar MyBB a Fedora 28

Utilitzeu un sistema diferent? MyBB és un programa de fòrum gratuït i de codi obert, intuïtiu i extensible. El codi font MyBB està allotjat a GitHub. Aquesta guia sho

Com instal·lar i configurar TaskBoard a Fedora 30

Com instal·lar i configurar TaskBoard a Fedora 30

Utilitzeu un sistema diferent? Introducció TaskBoard és una eina gratuïta i de codi obert que es pot utilitzar per fer un seguiment de les coses que cal fer. Proporciona

Com instal·lar LimeSurvey CE a Fedora 28

Com instal·lar LimeSurvey CE a Fedora 28

Utilitzeu un sistema diferent? LimeSurvey és un programa d'enquesta de codi obert escrit en PHP. El codi font de LimeSurvey està allotjat a GitHub. Aquesta guia us mostrarà

Com instal·lar Backdrop CMS 1.8.0 en un Fedora 26 LAMP VPS

Com instal·lar Backdrop CMS 1.8.0 en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? Backdrop CMS 1.8.0 és un sistema de gestió de continguts (CMS) senzill i flexible, adaptat per a mòbils, gratuït i de codi obert que ens permet

Com instal·lar Craft CMS a Fedora 29

Com instal·lar Craft CMS a Fedora 29

Utilitzeu un sistema diferent? Craft CMS és un CMS de codi obert escrit en PHP. El codi font de Craft CMS està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar-lo

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació