Ako skompilovať Nginx zo zdroja na Fedore 25

NGINX je možné použiť ako HTTP/HTTPS server, reverzný proxy server, poštový proxy server, vyrovnávač zaťaženia, TLS terminátor alebo cachovací server. Dizajnovo je dosť modulárny. Má natívne moduly a moduly tretích strán vytvorené komunitou. Je napísaný v programovacom jazyku C a je to veľmi rýchly a ľahký softvér.

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.

Inštalácia NGINX zo zdrojového kódu je pomerne „jednoduchá“ – stiahnite si najnovšiu verziu zdrojového kódu NGINX, nakonfigurujte, zostavte a nainštalujte.

V tomto návode budem používať hlavnú verziu, ktorá je v čase písania 1.13.3. Aktualizujte čísla verzií podľa toho, keď budú k dispozícii novšie verzie.

Požiadavky na zostavenie NGINX zo zdroja

Povinné požiadavky:

  • Verzia knižnice OpenSSL medzi 1.0.2 - 1.1.0
  • Verzia knižnice zlib medzi 1.1.3 - 1.2.11
  • Verzia knižnice PCRE medzi 4.4 - 8.41
  • Kompilátor GCC

Voliteľné požiadavky:

Predtým ako začneš

  1. Vytvoriť bežného používateľa s sudoprístupom :

  2. Prepnúť na nového používateľa:

    su - <username>
    
  3. Aktualizovať systém:

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

Zostavte NGINX zo zdroja

  1. Nainštalujte "Development Tools", editor Vim, wget a gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Stiahnite si najnovšiu hlavnú verziu zdrojového kódu NGINX a rozbaľte ju:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Stiahnite si zdrojový kód závislostí NGINX a extrahujte ich:

    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. Stiahnite si a nainštalujte voliteľné závislosti 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. Odstráňte všetky .tar.gzsúbory. Už ich nepotrebujeme:

    rm -rf *.tar.gz
    
  6. Prejdite do zdrojového adresára NGINX:

    cd ~/nginx-1.13.3
    
  7. Pre dobrú mieru uveďte zoznam súborov a adresárov zdrojového kódu NGINX:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Skopírujte manuálovú stránku NGINX do /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. Ak potrebujete pomoc, môžete uviesť dostupné konfiguračné prepínače spustením:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Nakonfigurujte, skompilujte a nainštalujte 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. Vytlačte verziu NGINX, verziu kompilátora a nakonfigurujte parametre skriptu:

    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. Vytvorte používateľa a skupinu systému NGINX:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Skontrolujte syntax a potenciálne chyby:

    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. Vytvorte súbor systémovej jednotky pre NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Skopírujte/prilepte nasledujúci obsah:

    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. Spustite NGINX:

    sudo systemctl start nginx.service
    
  17. Povoliť automatické spustenie NGINX pri zavádzaní:

    sudo systemctl enable nginx.service
    
  18. Skontrolujte, či sa NGINX spustí po reštarte:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Skontrolujte, či je spustený NGINX:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Reštartujte svoj VPS a overte, či sa NGINX spustí automaticky:

    sudo shutdown -r now
    
  21. Odstráňte archaické súbory z /etc/nginx/adresára:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Umiestnite súbory zvýraznenia syntaxe konfigurácie NGINX pre vimdo ~/.vim/. Pri úprave konfiguračného súboru NGINX sa vám zobrazí pekné zvýraznenie syntaxe:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Vytvorte conf.d/adresár v /etc/nginx/adresári. Do tohto adresára môžete umiestniť virtuálne servery a upstreamy:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Odstráňte extrahované adresáre a súbory z vášho domovského adresára:

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

Záver

To je všetko. Teraz máte nainštalovanú najnovšiu verziu NGINX. Je kompilovaný staticky proti niektorým dôležitým knižniciam, ako je OpenSSL. Verzia systému OpenSSL je často zastaraná. Použitím tejto metódy inštalácie s novšou verziou OpenSSL môžete využiť nové šifry ako CHACHA20_POLY1305a protokoly ako TLS 1.3, ktoré budú dostupné v OpenSSL 1.1.1(ktoré v čase písania tohto článku nebolo vydané).


Ako nainštalovať BigTree CMS na Fedora 26 LAMP VPS

Ako nainštalovať BigTree CMS na Fedora 26 LAMP VPS

Používate iný systém? BigTree CMS 4.2 je rýchly a ľahký, bezplatný a open source podnikový redakčný systém (CMS) s rozsiahlym

Ako nainštalovať Koel na Fedora 28

Ako nainštalovať Koel na Fedora 28

Používate iný systém? Koel je jednoduchá webová aplikácia na streamovanie zvuku napísaná vo Vue na strane klienta a Laravel na strane servera. Koe

Ako nainštalovať Grav CMS na Fedora 28

Ako nainštalovať Grav CMS na Fedora 28

Používate iný systém? Grav je open source CMS s plochým súborom napísaný v PHP. Zdrojový kód Grav je verejne hosťovaný na GitHub. Táto príručka vám ukáže, ako t

Inštalácia Akaunting na Fedora 28

Inštalácia Akaunting na Fedora 28

Používate iný systém? Akaunting je bezplatný, open source a online účtovný softvér určený pre malé podniky a živnostníkov. Je postavený vtipne

Ako nainštalovať Tiny Tiny RSS Reader na Fedora 26 LAMP VPS

Ako nainštalovať Tiny Tiny RSS Reader na Fedora 26 LAMP VPS

Používate iný systém? Tiny Tiny RSS Reader je bezplatný a otvorený zdroj s vlastným hosťovaním webového informačného kanála správ (RSS/Atom) a agregátor určený na

Ako nainštalovať InvoicePlane na Fedore 28

Ako nainštalovať InvoicePlane na Fedore 28

Používate iný systém? InvoicePlane je bezplatná a open source fakturačná aplikácia. Jeho zdrojový kód možno nájsť v tomto úložisku Github. Tento sprievodca

Nainštalujte Minecraft Server na Fedora 26

Nainštalujte Minecraft Server na Fedora 26

Používate iný systém? V tomto návode vás prevediem nastavením servera Minecraft na vysokovýkonnom SSD VPS na Vultr. Naučíte sa ho

Ako skompilovať Nginx zo zdroja na Fedore 25

Ako skompilovať Nginx zo zdroja na Fedore 25

Používate iný systém? NGINX je možné použiť ako HTTP/HTTPS server, reverzný proxy server, poštový proxy server, vyrovnávač zaťaženia, TLS terminátor alebo cache

Ako nainštalovať Pagekit 1.0 CMS na Fedora 26 LAMP VPS

Ako nainštalovať Pagekit 1.0 CMS na Fedora 26 LAMP VPS

Používate iný systém? Pagekit 1.0 CMS je krásny, modulárny, rozšíriteľný a ľahký, bezplatný a open source systém na správu obsahu (CMS) s

Ako nainštalovať Subrion 4.1 CMS na Fedora 26 LAMP VPS

Ako nainštalovať Subrion 4.1 CMS na Fedora 26 LAMP VPS

Používate iný systém? Subrion 4.1 CMS je výkonný a flexibilný open source systém na správu obsahu (CMS), ktorý prináša intuitívny a prehľadný obsah

Nainštalujte TaskServer (taskd) na Fedore 26

Nainštalujte TaskServer (taskd) na Fedore 26

Používate iný systém? TaskWarrior je open source nástroj na správu času, ktorý je vylepšením aplikácie Todo.txt a jej klonov. Vzhľadom na th

Ako nainštalovať CMS Made Simple 2.2 na Fedora 26 LAMP VPS

Ako nainštalovať CMS Made Simple 2.2 na Fedora 26 LAMP VPS

Používate iný systém? CMS Made Simple 2.2 je flexibilný a rozšíriteľný, bezplatný a open source systém na správu obsahu (CMS) inteligentne navrhnutý tak, aby

Inštalácia Bro IDS na Fedora 25

Inštalácia Bro IDS na Fedora 25

Používate iný systém? Úvod Bro je open-source analyzátor sieťovej prevádzky. Je to predovšetkým bezpečnostný monitor, ktorý kontroluje všetku premávku na linke

Ako nainštalovať X-Cart 5 na Fedora 31

Ako nainštalovať X-Cart 5 na Fedora 31

Používate iný systém? X-Cart je extrémne flexibilná open-source platforma elektronického obchodu s množstvom funkcií a integrácií. Zdrojový kód X-Cart je hostiteľ

Ako nainštalovať Matomo Analytics na Fedora 28

Ako nainštalovať Matomo Analytics na Fedora 28

Používate iný systém? Matomo (predtým Piwik) je open source analytická platforma, otvorená alternatíva k Google Analytics. Zdroj Matomo je hosťovaný o

Ako nainštalovať MyBB na Fedora 28

Ako nainštalovať MyBB na Fedora 28

Používate iný systém? MyBB je bezplatný a otvorený zdroj, intuitívny a rozšíriteľný program fóra. Zdrojový kód MyBB je umiestnený na GitHub. Tento sprievodca bude sho

Ako nainštalovať a nakonfigurovať TaskBoard na Fedore 30

Ako nainštalovať a nakonfigurovať TaskBoard na Fedore 30

Používate iný systém? Úvod TaskBoard je bezplatný nástroj s otvoreným zdrojovým kódom, ktorý možno použiť na sledovanie vecí, ktoré je potrebné vykonať. To poskytuje

Inštalácia Fork CMS na Fedora 28

Inštalácia Fork CMS na Fedora 28

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať LimeSurvey CE na Fedora 28

Ako nainštalovať LimeSurvey CE na Fedora 28

Používate iný systém? LimeSurvey je open source prieskumný program napísaný v PHP. Zdrojový kód LimeSurvey je umiestnený na GitHub. Tento návod vám to ukáže

Ako nainštalovať Backdrop CMS 1.8.0 na Fedora 26 LAMP VPS

Ako nainštalovať Backdrop CMS 1.8.0 na Fedora 26 LAMP VPS

Používate iný systém? Backdrop CMS 1.8.0 je jednoduchý a flexibilný, mobilný, bezplatný a open source systém na správu obsahu (CMS), ktorý nám umožňuje

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac