Kuinka kääntää Nginx lähteestä CentOS 7: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.2 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.40
  • GCC- kääntäjä

Valinnaiset vaatimukset:

Ennen kuin aloitat

  1. Luo tavallinen käyttäjä, jolla on sudokäyttöoikeus .
  2. Vaihda uuteen käyttäjään:

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

    sudo yum check-update || sudo yum update -y
    

Rakenna NGINX lähteestä

  1. Asenna "Kehitystyökalut" ja Vim-editori:

    sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
    
  2. Asenna lisäpaketit Enterprise Linuxille (EPEL):

    sudo yum install -y epel-release
    
  3. Lataa ja asenna valinnaiset NGINX-riippuvuudet:

    sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
    
  4. Lataa uusin pääradan versio nginx lähdekoodia ja pura se:

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

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

    # PCRE version 8.40
    wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.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
    
  6. Poista kaikki .tar.gztiedostot. Emme tarvitse niitä enää:

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

    cd ~/nginx-1.13.2
    
  8. Listaa nginx-lähdekooditiedostot ja -hakemistot hyvään mittaan:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  9. Kopioi NGINX manuaalisivu osoitteeseen /usr/share/man/man8:

    sudo cp ~/nginx-1.13.2/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
    
  10. Saat apua luettelemalla käytettävissä olevat konfigurointikytkimet suorittamalla:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  11. 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=CentOS \
                --builddir=nginx-1.13.2 \
                --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 \
                --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.40 \
                --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
    
  12. Symlink /usr/lib64/nginx/modulesettä /etc/nginx/moduleshakemistoon, jotta voit ladata dynaamisia moduuleita nginx kokoonpano näin load_module modules/ngx_foo_module.so;:

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    
  13. Tulosta NGINX-versio, kääntäjäversio ja määritä komentosarjaparametrit:

    sudo nginx -V
    
    # nginx version: nginx/1.13.2 (CentOS)
    # built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx . . .
    # . . .
    # . . .
    
  14. 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
    
  15. 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
    
  16. Luo systemd-yksikkötiedosto nginxille:

    sudo vim /usr/lib/systemd/system/nginx.service
    
  17. 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 - high performance web server
    Documentation=https://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
  18. Käynnistä ja ota käyttöön NGINX-palvelu:

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

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

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

    sudo shutdown -r now
    
  22. Poista arkaaiset tiedostot /etc/nginxhakemistosta:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  23. Paikka syntaksin nginx kokoonpano vimosaksi ~/.vim/. Saat mukavan syntaksin korostuksen, kun muokkaat NGINX-määritystiedostoa:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
    
  24. Poista kaikki .defaultvarmuuskopiotiedostot kohteesta /etc/nginx/:

    sudo rm /etc/nginx/*.default
    

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


Asenna Plesk CentOS 7:ään

Asenna Plesk CentOS 7:ään

Käytätkö erilaista järjestelmää? Plesk on patentoitu verkkoisäntäohjauspaneeli, jonka avulla käyttäjät voivat hallita henkilökohtaisia ​​ja/tai asiakkaidensa verkkosivustoja, tietokantoja

Kuinka asentaa Squid Proxy CentOS:ään

Kuinka asentaa Squid Proxy CentOS:ään

Squid on suosittu, ilmainen Linux-ohjelma, jonka avulla voit luoda edelleenlähetysverkkovälityspalvelimen. Tässä oppaassa näet, kuinka Squid asennetaan CentOS:ään kääntääksesi sinut

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Johdanto Lighttpd on Apachen haarukka, jonka tarkoituksena on olla paljon vähemmän resurssiintensiivinen. Se on kevyt, tästä syystä sen nimi, ja on melko yksinkertainen käyttää. Asenna

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

VULTR on äskettäin tehnyt muutoksia heidän omiinsa, ja kaiken pitäisi nyt toimia hyvin heti, kun NetworkManager on käytössä. Jos haluat poistaa käytöstä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2 on tehokas valvontajärjestelmä, ja master-client-mallissa käytettynä se voi korvata NRPE-pohjaisten valvontatarkastusten tarpeen. Pääasiakas

Apache Cassandra 3.11.x:n asentaminen CentOS 7:ään

Apache Cassandra 3.11.x:n asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Apache Cassandra on ilmainen ja avoimen lähdekoodin NoSQL-tietokannan hallintajärjestelmä, joka on suunniteltu tarjoamaan skaalautuvuutta, hig.

Kuinka asentaa Microweber CentOS 7:ään

Kuinka asentaa Microweber CentOS 7:ään

Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle

Mattermost 4.1:n asentaminen CentOS 7:ään

Mattermost 4.1:n asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Mattermost on avoimen lähdekoodin itseisännöity vaihtoehto Slack SAAS -viestipalvelulle. Toisin sanoen Mattermostin avulla voit noin

Minecraft-palvelinverkon luominen BungeeCordilla Debian 8:ssa, Debian 9:ssä tai CentOS 7:ssä

Minecraft-palvelinverkon luominen BungeeCordilla Debian 8:ssa, Debian 9:ssä tai CentOS 7:ssä

Mitä tarvitset Vultr VPS:n, jossa on vähintään 1 Gt RAM-muistia. SSH-käyttö (pääkäyttäjän/järjestelmänvalvojan oikeuksilla). Vaihe 1: BungeeCordin asentaminen Ensimmäiset asiat ensin

Sallii salauksen Pleskissä

Sallii salauksen Pleskissä

Plesk-ohjauspaneelissa on erittäin mukava integraatio Lets Encryptille. Lets Encrypt on yksi ainoista SSL-palveluntarjoajista, jotka myöntävät varmenteita täydellisesti

Sallii salauksen cPanelissa

Sallii salauksen cPanelissa

Lets Encrypt on varmenneviranomainen, joka on omistautunut tarjoamaan SSL-varmenteita ilmaiseksi. cPanel on rakentanut siistin integraation sinulle ja asiakkaallesi

Kuinka asentaa Concrete5 CentOS 7:ään

Kuinka asentaa Concrete5 CentOS 7:ään

Käytätkö erilaista järjestelmää? Concrete5 on avoimen lähdekoodin sisällönhallintajärjestelmä, joka tarjoaa monia ainutlaatuisia ja hyödyllisiä ominaisuuksia, jotka auttavat toimittajia tuottamaan sisältöä helposti ja helposti.

Review Boardin asentaminen CentOS 7:ään

Review Boardin asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Review Board on ilmainen ja avoimen lähdekoodin työkalu lähdekoodin, dokumentaation, kuvien ja monien muiden tarkistamiseen. Se on web-pohjainen ohjelmisto

Asenna HTTP-todennus Nginxillä CentOS 7:ssä

Asenna HTTP-todennus Nginxillä CentOS 7:ssä

Tässä oppaassa opit määrittämään HTTP-todennuksen Nginx-verkkopalvelimelle, joka toimii CentOS 7:ssä. Vaatimukset Aloitaksesi tarvitset

Kuinka asentaa YOURLS CentOS 7:ään

Kuinka asentaa YOURLS CentOS 7:ään

YOURLS (Your Own URL Shortener) on avoimen lähdekoodin URL-osoitteiden lyhennys- ja data-analytiikkasovellus. Tässä artikkelissa käsittelemme asennusprosessia

Kuinka asentaa ja määrittää ArangoDB CentOS 7: ssä

Kuinka asentaa ja määrittää ArangoDB CentOS 7: ssä

Käytätkö erilaista järjestelmää? Johdanto ArangoDB on avoimen lähdekoodin NoSQL-tietokanta, jossa on joustava tietomalli asiakirjoille, kaavioille ja avainarvoille. se on

Etckeeperin käyttäminen /etc-version hallintaan

Etckeeperin käyttäminen /etc-version hallintaan

Johdanto /etc/-hakemistolla on tärkeä rooli Linux-järjestelmän toiminnassa. Syynä tähän on se, että lähes kaikki järjestelmäkokoonpanot

Miksi sinun pitäisi käyttää SSHFS:ää? Kuinka asentaa etätiedostojärjestelmä SSHFS:llä CentOS 6:ssa

Miksi sinun pitäisi käyttää SSHFS:ää? Kuinka asentaa etätiedostojärjestelmä SSHFS:llä CentOS 6:ssa

Monet järjestelmänvalvojat hallitsevat suuria määriä palvelimia. Kun tiedostoja on käytettävä eri palvelimien kautta, kirjaudu jokaiseen erikseen n

Half Life 2 -palvelimen määrittäminen CentOS 6:lle

Half Life 2 -palvelimen määrittäminen CentOS 6:lle

Tämä opetusohjelma kattaa Half Life 2 -pelipalvelimen asennuksen CentOS 6 -järjestelmään. Vaihe 1: Edellytysten asentaminen Voit määrittää ou

Kuinka asentaa Laravel GitScrum CentOS 7:ään

Kuinka asentaa Laravel GitScrum CentOS 7:ään

Laravel GitScrum tai GitScrum on avoimen lähdekoodin tuottavuustyökalu, joka on suunniteltu auttamaan kehitysryhmiä ottamaan käyttöön Scrum-metodologian samalla tavalla.

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