Kako prevesti Nginx iz vira na Fedora 25

NGINX se lahko uporablja kot strežnik HTTP/HTTPS, povratni proxy strežnik, poštni proxy strežnik, izravnalnik obremenitve, terminator TLS ali strežnik za predpomnjenje. Po zasnovi je precej modularen. Ima domače module in module tretjih oseb, ki jih je ustvarila skupnost. Napisana v programskem jeziku C, je zelo hitra in lahka programska oprema.

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.

Namestitev NGINX iz izvorne kode je razmeroma "enostavna" - prenesite najnovejšo različico izvorne kode NGINX, jo konfigurirajte, zgradite in namestite.

V tej vadnici bom uporabil glavno različico, ki je v času pisanja 1.13.3. Ustrezno posodobite številke različic, ko bodo na voljo novejše različice.

Zahteve za gradnjo NGINX iz vira

Obvezne zahteve:

  • Različica knjižnice OpenSSL med 1.0.2 - 1.1.0
  • Različica knjižnice zlib med 1.1.3 - 1.2.11
  • Različica knjižnice PCRE med 4.4 - 8.41
  • Prevajalnik GCC

Izbirne zahteve:

Preden začneš

  1. Ustvari navadnega uporabnika z sudodostopom :

  2. Preklopi na novega uporabnika:

    su - <username>
    
  3. Posodobitev sistema:

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

Zgradite NGINX iz vira

  1. Namestite "Razvojna orodja", urejevalnik Vim, wget in gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Prenesite najnovejšo glavno različico izvorne kode NGINX in jo razpakirajte:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Prenesite izvorno kodo odvisnosti NGINX in jih ekstrahirajte:

    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. Prenesite in namestite neobvezne odvisnosti 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. Odstranite vse .tar.gzdatoteke. Ne potrebujemo jih več:

    rm -rf *.tar.gz
    
  6. Pojdite v izvorni imenik NGINX:

    cd ~/nginx-1.13.3
    
  7. Za dobro mero navedite datoteke in imenike izvorne kode NGINX:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Kopirajte stran priročnika NGINX na /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. Za pomoč lahko navedete razpoložljiva konfiguracijska stikala tako, da zaženete:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Konfigurirajte, prevedite in namestite 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. Natisnite različico NGINX, različico prevajalnika in konfigurirajte parametre skripta:

    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. Ustvarite uporabnika in skupino sistema NGINX:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Preverite sintakso in morebitne napake:

    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. Ustvarite datoteko sistemske enote za NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Kopirajte/prilepite naslednjo vsebino:

    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. Zaženi NGINX:

    sudo systemctl start nginx.service
    
  17. Omogočite, da se NGINX samodejno zažene ob zagonu:

    sudo systemctl enable nginx.service
    
  18. Preverite, ali se bo NGINX zagnal po ponovnem zagonu:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Preverite, ali se NGINX izvaja:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Znova zaženite svoj VPS, da preverite, ali se NGINX samodejno zažene:

    sudo shutdown -r now
    
  21. Odstranite arhaične datoteke iz /etc/nginx/imenika:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Datoteke za označevanje sintakse konfiguracije NGINX za vimv ~/.vim/. Pri urejanju konfiguracijske datoteke NGINX se vam bo prikazalo lepo poudarjanje sintakse:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. V conf.d/imeniku naredite /etc/nginx/imenik. V ta imenik lahko postavite navidezne strežnike in navzgor:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Odstranite ekstrahirane imenike in datoteke iz domačega imenika:

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

Zaključek

To je to. Zdaj imate nameščeno najnovejšo različico NGINX. Sestavljen je statično glede na nekatere pomembne knjižnice, kot je OpenSSL. Pogosto je sistemska različica OpenSSL zastarela. Z uporabo tega načina namestitve z novejšo različico OpenSSL lahko izkoristite prednosti novih šifr, CHACHA20_POLY1305kot je TLS 1.3, ki bodo na voljo v OpenSSL 1.1.1(ki v času pisanja še ni bil izdan).


Kako namestiti BigTree CMS na Fedora 26 LAMP VPS

Kako namestiti BigTree CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? BigTree CMS 4.2 je hiter in lahek, brezplačen in odprtokoden sistem za upravljanje vsebin podjetja (CMS) z obsežnim

Kako namestiti Koel na Fedora 28

Kako namestiti Koel na Fedora 28

Uporaba drugega sistema? Koel je preprosta spletna osebna aplikacija za pretakanje zvoka, napisana v Vue na strani odjemalca in Laravel na strani strežnika. Koe

Kako namestiti Grav CMS na Fedora 28

Kako namestiti Grav CMS na Fedora 28

Uporaba drugega sistema? Grav je odprtokodni CMS s ploščatimi datotekami, napisan v PHP. Izvorna koda Grav je javno gostovana na GitHubu. Ta vodnik vam bo pokazal, kako t

Namestitev Akauntinga na Fedora 28

Namestitev Akauntinga na Fedora 28

Uporaba drugega sistema? Akaunting je brezplačna, odprtokodna in spletna računovodska programska oprema, zasnovana za mala podjetja in samostojne delavce. Zgrajena je pametno

How to Install Tiny Tiny RSS Reader on a Fedora 26 LAMP VPS

How to Install Tiny Tiny RSS Reader on a Fedora 26 LAMP VPS

Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo

Kako namestiti InvoicePlane na Fedora 28

Kako namestiti InvoicePlane na Fedora 28

Uporaba drugega sistema? InvoicePlane je brezplačna in odprtokodna aplikacija za izdajanje računov. Njegovo izvorno kodo lahko najdete v tem repozitoriju Github. Ta vodnik

Namestite strežnik Minecraft na Fedora 26

Namestite strežnik Minecraft na Fedora 26

Uporaba drugega sistema? V tej vadnici vas bom vodil skozi nastavitev strežnika Minecraft na visoko zmogljivem SSD VPS pri Vultru. Naučili se boste ho

Kako prevesti Nginx iz vira na Fedora 25

Kako prevesti Nginx iz vira na Fedora 25

Uporaba drugega sistema? NGINX se lahko uporablja kot strežnik HTTP/HTTPS, povratni proxy strežnik, poštni proxy strežnik, uravnoteženje obremenitve, terminator TLS ali cachin

Kako namestiti Pagekit 1.0 CMS na Fedora 26 LAMP VPS

Kako namestiti Pagekit 1.0 CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? Pagekit 1.0 CMS je lep, modularen, razširljiv in lahek, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS) z

Kako namestiti Subrion 4.1 CMS na Fedora 26 LAMP VPS

Kako namestiti Subrion 4.1 CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? Subrion 4.1 CMS je zmogljiv in prilagodljiv odprtokodni sistem za upravljanje vsebine (CMS), ki prinaša intuitivno in jasno vsebino.

Namestite TaskServer (taskd) na Fedora 26

Namestite TaskServer (taskd) na Fedora 26

Uporaba drugega sistema? TaskWarrior je odprtokodno orodje za upravljanje časa, ki je izboljšava aplikacije Todo.txt in njenih klonov. Zaradi th

Kako namestiti CMS Made Simple 2.2 na Fedora 26 LAMP VPS

Kako namestiti CMS Made Simple 2.2 na Fedora 26 LAMP VPS

Uporaba drugega sistema? CMS Made Simple 2.2 je prilagodljiv in razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS), ki je inteligentno zasnovan za

Namestitev Bro IDS na Fedora 25

Namestitev Bro IDS na Fedora 25

Uporaba drugega sistema? Uvod Bro je odprtokodni analizator omrežnega prometa. Gre predvsem za varnostni nadzornik, ki pregleduje ves promet na liniji

Kako namestiti X-Cart 5 na Fedora 31

Kako namestiti X-Cart 5 na Fedora 31

Uporaba drugega sistema? X-Cart je izjemno prilagodljiva odprtokodna platforma za e-trgovino s številnimi funkcijami in integracijami. Izvorna koda X-Cart je hoste

Kako namestiti Matomo Analytics na Fedora 28

Kako namestiti Matomo Analytics na Fedora 28

Uporaba drugega sistema? Matomo (prej Piwik) je odprtokodna analitična platforma, odprta alternativa Google Analytics. Vir Matomo gostuje o

Kako namestiti MyBB na Fedora 28

Kako namestiti MyBB na Fedora 28

Uporaba drugega sistema? MyBB je brezplačen in odprtokoden, intuitiven in razširljiv forumski program. Izvorna koda MyBB gostuje na GitHubu. Ta vodnik bo sho

Kako namestiti in konfigurirati TaskBoard na Fedora 30

Kako namestiti in konfigurirati TaskBoard na Fedora 30

Uporaba drugega sistema? Uvod TaskBoard je brezplačno in odprtokodno orodje, ki ga lahko uporabite za spremljanje stvari, ki jih je treba opraviti. Zagotavlja

Namestitev Fork CMS na Fedora 28

Namestitev Fork CMS na Fedora 28

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti LimeSurvey CE na Fedora 28

Kako namestiti LimeSurvey CE na Fedora 28

Uporaba drugega sistema? LimeSurvey je odprtokodni anketni program, napisan v PHP. Izvorna koda LimeSurvey gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti Backdrop CMS 1.8.0 na Fedora 26 LAMP VPS

Kako namestiti Backdrop CMS 1.8.0 na Fedora 26 LAMP VPS

Uporaba drugega sistema? Backdrop CMS 1.8.0 je preprost in prilagodljiv, mobilnim prijazen, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS), ki nam omogoča

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več