Kuinka kääntää Nginx lähteestä Fedora 25:ssä

NGINX: ää voidaan käyttää HTTP/HTTPS-palvelimena, käänteisenä välityspalvelimena, sähköpostin välityspalvelimena, kuormituksen tasapainottajana, TLS-päätteenä tai välimuistipalvelimena. Se on rakenteeltaan melko modulaarinen. Siinä on alkuperäisiä moduuleja ja yhteisön luomia kolmannen osapuolen moduuleja. Se on kirjoitettu C-ohjelmointikielellä, ja se on erittäin nopea ja kevyt ohjelmisto.

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.

NGINX:n asentaminen lähdekoodista on suhteellisen "helppoa" - lataa uusin versio NGINX-lähdekoodista, määritä, rakenna ja asenna se.

Tässä opetusohjelmassa aion käyttää pääradan versiota, joka on 1.13.3 ajankohtana kirjallisesti. Päivitä versionumerot vastaavasti, kun uudempia versioita tulee saataville.

Vaatimukset NGINX:n rakentamiselle lähteestä

Pakolliset vaatimukset:

  • OpenSSL- kirjaston versio välillä 1.0.2 - 1.1.0
  • zlib- kirjaston versio välillä 1.1.3 - 1.2.11
  • PCRE- kirjaston versio välillä 4.4 - 8.41
  • GCC- kääntäjä

Valinnaiset vaatimukset:

Ennen kuin aloitat

  1. Luo tavallinen käyttäjä, jolla on sudokäyttöoikeudet :

  2. Vaihda uuteen käyttäjään:

    su - <username>
    
  3. Päivitä järjestelmä:

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

Rakenna NGINX lähteestä

  1. Asenna "Kehitystyökalut", Vim-editori, wget ja gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Lataa uusin pääradan versio nginx lähdekoodia ja Pura se:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Lataa NGINX-riippuvuuksien lähdekoodi ja pura ne:

    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. Lataa ja asenna valinnaiset NGINX-riippuvuudet:

    # 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. Poista kaikki .tar.gztiedostot. Emme tarvitse niitä enää:

    rm -rf *.tar.gz
    
  6. Siirry NGINX-lähdehakemistoon:

    cd ~/nginx-1.13.3
    
  7. Listaa NGINX-lähdekooditiedostot ja -hakemistot hyvään mittaan:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Kopioi NGINX manuaalisivu osoitteeseen /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. Jos tarvitset apua, voit luetella käytettävissä olevat konfigurointikytkimet suorittamalla:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Määritä, käännä ja asenna 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. Tulosta NGINX-versio, kääntäjäversio ja määritä komentosarjaparametrit:

    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. Luo NGINX-järjestelmän käyttäjä ja ryhmä:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Tarkista syntaksi ja mahdolliset virheet:

    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. Luo systemd-yksikkötiedosto NGINX:lle:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Kopioi/liitä seuraava sisältö:

    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. Käynnistä NGINX:

    sudo systemctl start nginx.service
    
  17. Ota NGINX käyttöön käynnistymään automaattisesti käynnistyksen yhteydessä:

    sudo systemctl enable nginx.service
    
  18. Tarkista, käynnistyykö NGINX uudelleenkäynnistyksen jälkeen:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Tarkista, onko NGINX käynnissä:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Käynnistä VPS uudelleen varmistaaksesi, että NGINX käynnistyy automaattisesti:

    sudo shutdown -r now
    
  21. Poista arkaaiset tiedostot /etc/nginx/hakemistosta:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Paikka syntaksin tiedostoja nginx kokoonpano vimosaksi ~/.vim/. Sinulle esitetään mukava syntaksin korostus, kun muokkaat NGINX-määritystiedostoa:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Tee conf.d/hakemisto /etc/nginx/hakemistoon. Tässä hakemistossa voit sijoittaa virtuaalisia palvelimia ja ylävirtaan:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Poista puretut hakemistot ja tiedostot kotihakemistostasi:

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

Johtopäätös

Se siitä. Sinulla on nyt uusin versio NGINX:stä asennettuna. Se on käännetty staattisesti joitain tärkeitä kirjastoja, kuten OpenSSL:ää, vastaan. Usein järjestelmän OpenSSL-versio on vanhentunut. Käyttämällä tätä asennustapaa uudemmalla OpenSSL-versiolla voit hyödyntää uusia salauksia, CHACHA20_POLY1305kuten TLS 1.3 , ja protokollia , jotka ovat saatavilla OpenSSL:ssä 1.1.1(jota ei ole julkaistu tätä kirjoitettaessa).


BigTree CMS:n asentaminen Fedora 26 LAMP VPS:ään

BigTree CMS:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? BigTree CMS 4.2 on nopea ja kevyt, ilmainen ja avoimen lähdekoodin yritystason sisällönhallintajärjestelmä (CMS), jossa on laaja

Kuinka asentaa Koel Fedora 28:aan

Kuinka asentaa Koel Fedora 28:aan

Käytätkö erilaista järjestelmää? Koel on yksinkertainen verkkopohjainen henkilökohtainen äänen suoratoistosovellus, joka on kirjoitettu Vuessa asiakaspuolella ja Laravelissa palvelinpuolella. Koe

Grav CMS:n asentaminen Fedora 28:aan

Grav CMS:n asentaminen Fedora 28:aan

Käytätkö erilaista järjestelmää? Grav on avoimen lähdekoodin kiinteätiedostoinen CMS, joka on kirjoitettu PHP:llä. Gravin lähdekoodia isännöidään julkisesti GitHubissa. Tämä opas näyttää sinulle, kuinka t

Akauntingin asentaminen Fedora 28:aan

Akauntingin asentaminen Fedora 28:aan

Käytätkö erilaista järjestelmää? Akaunting on ilmainen, avoimen lähdekoodin ja online-kirjanpitoohjelmisto, joka on suunniteltu pienille yrityksille ja freelancereille. Se on rakennettu viisaasti

Tiny Tiny RSS Reader -ohjelman asentaminen Fedora 26 LAMP VPS:ään

Tiny Tiny RSS Reader -ohjelman asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu

Kuinka asentaa InvoicePlane Fedora 28:aan

Kuinka asentaa InvoicePlane Fedora 28:aan

Käytätkö erilaista järjestelmää? InvoicePlane on ilmainen ja avoimen lähdekoodin laskutussovellus. Sen lähdekoodi löytyy tästä Github-arkistosta. Tämä opas

Asenna Minecraft-palvelin Fedora 26:een

Asenna Minecraft-palvelin Fedora 26:een

Käytätkö erilaista järjestelmää? Tässä opetusohjelmassa opastan sinua Minecraft-palvelimen määrittämisessä korkean suorituskyvyn SSD VPS:lle Vultrissa. Opit kyllä

Kuinka kääntää Nginx lähteestä Fedora 25:ssä

Kuinka kääntää Nginx lähteestä Fedora 25:ssä

Käytätkö erilaista järjestelmää? NGINX:ää voidaan käyttää HTTP/HTTPS-palvelimena, käänteisenä välityspalvelimena, sähköpostin välityspalvelimena, kuormituksen tasapainottimena, TLS-päätteenä tai välimuistina.

Pagekit 1.0 CMS:n asentaminen Fedora 26 LAMP VPS:ään

Pagekit 1.0 CMS:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on

Subrion 4.1 CMS:n asentaminen Fedora 26 LAMP VPS:ään

Subrion 4.1 CMS:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön

Asenna TaskServer (taskd) Fedora 26:een

Asenna TaskServer (taskd) Fedora 26:een

Käytätkö erilaista järjestelmää? TaskWarrior on avoimen lähdekoodin ajanhallintatyökalu, joka on parannus Todo.txt-sovellukseen ja sen klooniin. Johtuen th

CMS Made Simple 2.2:n asentaminen Fedora 26 LAMP VPS:ään

CMS Made Simple 2.2:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? CMS Made Simple 2.2 on joustava ja laajennettava, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka on älykkäästi suunniteltu

Bro IDS:n asentaminen Fedora 25:een

Bro IDS:n asentaminen Fedora 25:een

Käytätkö erilaista järjestelmää? Johdanto Bro on avoimen lähdekoodin verkkoliikenteen analysaattori. Se on ensisijaisesti turvamonitori, joka tarkastaa kaiken liikenteen linjalla

Kuinka asentaa X-Cart 5 Fedora 31:een

Kuinka asentaa X-Cart 5 Fedora 31:een

Käytätkö erilaista järjestelmää? X-Cart on erittäin joustava avoimen lähdekoodin verkkokauppaalusta, jossa on paljon ominaisuuksia ja integraatioita. X-Cartin lähdekoodi on hoste

Matomo Analyticsin asentaminen Fedora 28:aan

Matomo Analyticsin asentaminen Fedora 28:aan

Käytätkö erilaista järjestelmää? Matomo (aiemmin Piwik) on avoimen lähdekoodin analytiikkaalusta, avoin vaihtoehto Google Analyticsille. Matomo-lähdettä isännöi o

Kuinka asentaa MyBB Fedora 28:aan

Kuinka asentaa MyBB Fedora 28:aan

Käytätkö erilaista järjestelmää? MyBB on ilmainen ja avoimen lähdekoodin, intuitiivinen ja laajennettava foorumiohjelma. MyBB-lähdekoodia isännöi GitHub. Tämä opas tulee sho

TaskBoardin asentaminen ja määrittäminen Fedora 30:ssä

TaskBoardin asentaminen ja määrittäminen Fedora 30:ssä

Käytätkö erilaista järjestelmää? Johdanto TaskBoard on ilmainen ja avoimen lähdekoodin työkalu, jonka avulla voidaan pitää kirjaa asioista, jotka on tehtävä. Se tarjoaa

LimeSurvey CE:n asentaminen Fedora 28:aan

LimeSurvey CE:n asentaminen Fedora 28:aan

Käytätkö erilaista järjestelmää? LimeSurvey on avoimen lähdekoodin kyselyohjelma, joka on kirjoitettu PHP:llä. LimeSurveyn lähdekoodia isännöi GitHub. Tämä opas näyttää sinulle

Backdrop CMS 1.8.0:n asentaminen Fedora 26 LAMP VPS:ään

Backdrop CMS 1.8.0:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Backdrop CMS 1.8.0 on yksinkertainen ja joustava, mobiiliystävällinen, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jonka avulla voimme

Craft CMS:n asentaminen Fedora 29:ään

Craft CMS:n asentaminen Fedora 29:ään

Käytätkö erilaista järjestelmää? Craft CMS on avoimen lähdekoodin CMS, joka on kirjoitettu PHP:llä. Craft CMS:n lähdekoodia isännöi GitHub. Tämä opas näyttää kuinka asennus tehdään

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja