Kuidas kompileerida Nginxi allikast CentOS 7-s

NGINX-i saab kasutada HTTP/HTTPS-serverina, pöördpuhverserverina, meilipuhverserverina, koormuse tasakaalustajana, TLS-i lõpetajana või vahemällu salvestava serverina. See on disainilt üsna modulaarne. Sellel on kogukonna loodud algmoodulid ja kolmanda osapoole moodulid. Programmeerimiskeeles C kirjutatud on see väga kiire ja kerge tarkvara.

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-i installimine lähtekoodist on suhteliselt "lihtne" – laadige alla NGINX-i lähtekoodi uusim versioon, seadistage, koostage ja installige.

Sel juhendaja, ma kasutan põhilistele versioon, mis on 1.13.2 ajal kirjalikult. Värskendage versiooninumbreid vastavalt, kui uuemad versioonid on saadaval.

Nõuded NGINX-i allikast ehitamiseks

Kohustuslikud nõuded:

  • OpenSSL-i teegi versioon vahemikus 1.0.2–1.1.0
  • zlib teegi versioon vahemikus 1.1.3–1.2.11
  • PCRE teegi versioon vahemikus 4.4–8.40
  • GCC kompilaator

Valikulised nõuded:

Enne alustamist

  1. Looge tavakasutaja sudojuurdepääsuga .
  2. Lülitumine uuele kasutajale:

    su - <username>
    
  3. Uuenda süsteemi:

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

Ehitage NGINX allikast

  1. Installige "Arendustööriistad" ja Vim-redaktor:

    sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
    
  2. Installige Enterprise Linuxi (EPEL) lisapaketid:

    sudo yum install -y epel-release
    
  3. Laadige alla ja installige valikulised NGINX-i sõltuvused:

    sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
    
  4. Lae alla uusim põhilistele versioon nginx lähtekoodi ja selle kaevandamiseks:

    wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz
    
  5. Laadige alla NGINX-i sõltuvuste lähtekood ja eraldage need:

    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. Eemaldage kõik .tar.gzfailid. Me ei vaja neid enam:

    rm -rf *.tar.gz
    
  7. Minge NGINX-i lähtekataloogi:

    cd ~/nginx-1.13.2
    
  8. Hea mõõtmise huvides loetlege nginxi lähtekoodi failid ja kataloogid:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  9. Kopeerige NGINX-i käsiraamatu leht asukohta /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. Abi saamiseks saate loetleda saadaolevad konfiguratsioonilülitid, käivitades:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  11. Konfigureerige, kompileerige ja installige 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. Symlinki /usr/lib64/nginx/moduleset /etc/nginx/moduleskataloog, nii et saate laadida dünaamiline moodulite nginx konfiguratsiooni niimoodi load_module modules/ngx_foo_module.so;:

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    
  13. Printige NGINX-i versioon, kompilaatori versioon ja konfigureerige skripti parameetrid:

    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. Looge NGINX süsteemi kasutaja ja rühm:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  15. Kontrollige süntaksit ja võimalikke vigu:

    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. Looge nginxi jaoks süsteemiüksuse fail:

    sudo vim /usr/lib/systemd/system/nginx.service
    
  17. Kopeerige/kleepige järgmine sisu:

    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äivitage ja lubage NGINX-teenus:

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    
  19. Kontrollige, kas NGINX käivitub pärast taaskäivitamist:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  20. Kontrollige, kas NGINX töötab:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  21. Taaskäivitage oma VPS, et kontrollida, kas NGINX käivitub automaatselt:

    sudo shutdown -r now
    
  22. Eemaldage /etc/nginxkataloogist arhailised failid :

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  23. Koht süntaksi esiletõstmine nginx konfiguratsiooni vimarvesse ~/.vim/. NGINX-i konfiguratsioonifaili redigeerimisel saate kena süntaksi esiletõstmise:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
    
  24. Eemaldage kõik .defaultvarukoopiafailid asukohast /etc/nginx/:

    sudo rm /etc/nginx/*.default
    

Järeldus

See on kõik. Nüüd on teil installitud NGINX-i uusim versioon. See kompileeritakse staatiliselt mõne olulise teeki, näiteks OpenSSL-i vastu. Sageli on süsteemi OpenSSL-i versioon aegunud. Kasutades seda OpenSSL-i uuema versiooniga installimise meetodit, saate kasutada uusi šifreid, CHACHA20_POLY1305nagu TLS 1.3 , ja protokolle, mis on saadaval OpenSSL-is 1.1.1(mida pole kirjutamise ajal välja antud).


Installige Plesk operatsioonisüsteemi CentOS 7

Installige Plesk operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Plesk on patenteeritud veebihosti juhtpaneel, mis võimaldab kasutajatel hallata oma isiklikke ja/või klientide veebisaite, andmebaase

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile

Mattermost 4.1 installimine CentOS 7-sse

Mattermost 4.1 installimine CentOS 7-sse

Kas kasutate teistsugust süsteemi? Mattermost on avatud lähtekoodiga isehostitav alternatiiv Slack SAAS-i sõnumsideteenusele. Teisisõnu, Mattermostiga saate ca

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Mida vajate Vultr VPS-i, millel on vähemalt 1 GB muutmälu. SSH-juurdepääs (juur-/administraatoriõigustega). 1. samm: BungeeCordi installimine Kõigepealt

Võimaldab Pleskis krüptida

Võimaldab Pleskis krüptida

Pleski juhtpaneelil on Lets Encrypti jaoks väga kena integratsioon. Lets Encrypt on üks ainsatest SSL-i pakkujatest, kes väljastab sertifikaate täielikult

Võimaldab krüptida cPanelil

Võimaldab krüptida cPanelil

Lets Encrypt on sertifitseerimisasutus, mis on pühendunud SSL-sertifikaatide tasuta pakkumisele. cPanel on teie ja teie kliendi jaoks loonud korraliku integratsiooni

Kuidas installida Concrete5 süsteemi CentOS 7

Kuidas installida Concrete5 süsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Concrete5 on avatud lähtekoodiga CMS, mis pakub palju eristatavaid ja kasulikke funktsioone, mis aitavad toimetajatel sisu hõlpsalt luua.

Kuidas installida CentOS 7 arvustuspaneeli

Kuidas installida CentOS 7 arvustuspaneeli

Kas kasutate teistsugust süsteemi? Review Board on tasuta avatud lähtekoodiga tööriist lähtekoodi, dokumentatsiooni, piltide ja palju muu ülevaatamiseks. See on veebipõhine tarkvara

Setup HTTP Authentication With Nginx on CentOS 7

Setup HTTP Authentication With Nginx on CentOS 7

In this guide, you will learn how to setup HTTP authentication for an Nginx web server running on CentOS 7. Requirements To get started, youll need th

Kuidas installida YOURLS süsteemi CentOS 7

Kuidas installida YOURLS süsteemi CentOS 7

YOURLS (Your Own URL Shortener) on avatud lähtekoodiga URL-i lühendamise ja andmeanalüüsi rakendus. Selles artiklis käsitleme installimisprotsessi

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kas kasutate teistsugust süsteemi? Sissejuhatus ArangoDB on avatud lähtekoodiga NoSQL-i andmebaas, millel on paindlik andmemudel dokumentide, graafikute ja võtmeväärtuste jaoks. see on

Etckeeperi kasutamine faili / etc versioonikontrolliks

Etckeeperi kasutamine faili / etc versioonikontrolliks

Sissejuhatus Kataloog /etc/ mängib Linuxi süsteemi toimimises kriitilist rolli. Selle põhjuseks on peaaegu iga süsteemi konfiguratsioon

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Paljud süsteemiadministraatorid haldavad suuri servereid. Kui failidele on vaja juurde pääseda erinevatest serveritest, logige igasse eraldi sisse ca

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

See õpetus hõlmab Half Life 2 mänguserveri installimist süsteemi CentOS 6 System. 1. samm: eeltingimuste installimine Ou seadistamiseks

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Laravel GitScrum ehk GitScrum on avatud lähtekoodiga produktiivsuse tööriist, mis on loodud selleks, et aidata arendusmeeskondadel rakendada Scrumi metoodikat sarnasel viisil.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit