Kuidas kompileerida Nginxi allikast Fedora 25-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 kasutada põhilistele versioon, mis on 1.13.3 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.41
  • GCC kompilaator

Valikulised nõuded:

Enne alustamist

  1. Looge tavakasutaja, kellel on sudojuurdepääs :

  2. Lülitumine uuele kasutajale:

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

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

Ehitage NGINX allikast

  1. Installige "Arendustööriistad", Vimi redaktor, wget ja gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Lae alla uusim põhilistele versioon nginx lähtekoodi ja Ekstrakti see:

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

    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. Laadige alla ja installige valikulised NGINX-i sõltuvused:

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

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

    cd ~/nginx-1.13.3
    
  7. Hea mõõtmise huvides loetlege NGINX-i lähtekoodifailid ja kataloogid:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Kopeerige NGINX-i käsiraamatu leht asukohta /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. 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
    
  10. 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=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. Printige NGINX-i versioon, kompilaatori versioon ja konfigureerige skripti parameetrid:

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

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. 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
    
  14. Looge NGINX-i jaoks süsteemiüksuse fail:

    sudo vim /etc/systemd/system/nginx.service
    
  15. 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 - 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äivitage NGINX:

    sudo systemctl start nginx.service
    
  17. Lubage NGINX-i käivitamisel automaatselt käivituda:

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

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

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

    sudo shutdown -r now
    
  21. Eemaldage /etc/nginx/kataloogist arhailised failid :

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Koht süntaksi esiletõstmise faile nginx konfiguratsiooni vimarvesse ~/.vim/. NGINX konfiguratsioonifaili redigeerimisel kuvatakse teile kena süntaksi esiletõst:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Tee conf.d/kataloogis /etc/nginx/kataloog. Sellesse kataloogi saate paigutada virtuaalservereid ja ülesvoolu:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Eemaldage oma kodukataloogist ekstraktitud kataloogid ja failid:

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

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


BigTree CMS-i installimine Fedora 26 LAMP VPS-ile

BigTree CMS-i installimine Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? BigTree CMS 4.2 on kiire ja kerge, tasuta ja avatud lähtekoodiga ettevõttetasemel sisuhaldussüsteem (CMS), millel on ulatuslik

Kuidas installida Koel Fedora 28-le

Kuidas installida Koel Fedora 28-le

Kas kasutate teistsugust süsteemi? Koel on lihtne veebipõhine isiklik heli voogesituse rakendus, mis on kirjutatud kliendi poolel Vue ja serveri poolel Laraveli keeles. Koe

Kuidas installida Grav CMS-i Fedora 28-sse

Kuidas installida Grav CMS-i Fedora 28-sse

Kas kasutate teistsugust süsteemi? Grav on avatud lähtekoodiga lamefailide CMS, mis on kirjutatud PHP-s. Gravi lähtekoodi majutatakse avalikult GitHubis. See juhend näitab teile, kuidas t

Akauntingi installimine Fedora 28-le

Akauntingi installimine Fedora 28-le

Kas kasutate teistsugust süsteemi? Akaunting on tasuta avatud lähtekoodiga ja veebipõhine raamatupidamistarkvara, mis on mõeldud väikeettevõtetele ja vabakutselistele. See on üles ehitatud vaimukalt

Kuidas installida väike väike RSS-lugeja Fedora 26 LAMP VPS-ile

Kuidas installida väike väike RSS-lugeja Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? Tiny Tiny RSS Reader on tasuta ja avatud lähtekoodiga isehostitav veebipõhine uudistevoo (RSS/Atom) lugeja ja koondaja, mis on loodud

Kuidas installida InvoicePlane seadmesse Fedora 28

Kuidas installida InvoicePlane seadmesse Fedora 28

Kas kasutate teistsugust süsteemi? InvoicePlane on tasuta ja avatud lähtekoodiga arveldusrakendus. Selle lähtekoodi leiate sellest Githubi hoidlast. See juhend

Installige Fedora 26-le Minecrafti server

Installige Fedora 26-le Minecrafti server

Kas kasutate teistsugust süsteemi? Selles õpetuses juhendan teid Minecrafti serveri seadistamisel suure jõudlusega SSD VPS-is Vultris. Õpid ho

Kuidas kompileerida Nginxi allikast Fedora 25-s

Kuidas kompileerida Nginxi allikast Fedora 25-s

Kas kasutate teistsugust süsteemi? NGINX-i saab kasutada HTTP/HTTPS-serverina, pöördpuhverserverina, meili puhverserverina, koormuse tasakaalustajana, TLS-i lõpetajana või vahemäluna.

Pagekit 1.0 CMS installimine Fedora 26 LAMP VPS-ile

Pagekit 1.0 CMS installimine Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? Pagekit 1.0 CMS on ilus, modulaarne, laiendatav ja kerge, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS).

Subrion 4.1 CMS installimine Fedora 26 LAMP VPS-ile

Subrion 4.1 CMS installimine Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? Subrion 4.1 CMS on võimas ja paindlik avatud lähtekoodiga sisuhaldussüsteem (CMS), mis pakub intuitiivset ja selget sisu

Installige TaskServer (taskd) Fedora 26-sse

Installige TaskServer (taskd) Fedora 26-sse

Kas kasutate teistsugust süsteemi? TaskWarrior on avatud lähtekoodiga ajahaldustööriist, mis täiustab rakendust Todo.txt ja selle kloone. Tänu th

Kuidas installida CMS Made Simple 2.2 Fedora 26 LAMP VPS-ile

Kuidas installida CMS Made Simple 2.2 Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? CMS Made Simple 2.2 on paindlik ja laiendatav tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS), mis on intelligentselt loodud

Bro IDS installimine Fedora 25-le

Bro IDS installimine Fedora 25-le

Kas kasutate teistsugust süsteemi? Sissejuhatus Bro on avatud lähtekoodiga võrguliikluse analüsaator. See on peamiselt turvamonitor, mis kontrollib kogu liini liiklust

Kuidas installida X-Cart 5 Fedora 31-le

Kuidas installida X-Cart 5 Fedora 31-le

Kas kasutate teistsugust süsteemi? X-Cart on äärmiselt paindlik avatud lähtekoodiga e-kaubanduse platvorm, millel on palju funktsioone ja integratsioone. X-Carti lähtekood on hoste

Matomo Analyticsi installimine Fedora 28-sse

Matomo Analyticsi installimine Fedora 28-sse

Kas kasutate teistsugust süsteemi? Matomo (endine Piwik) on avatud lähtekoodiga analüüsiplatvorm, mis on Google Analyticsi avatud alternatiiv. Matomo allikas on majutatud o

Kuidas installida MyBB Fedora 28

Kuidas installida MyBB Fedora 28

Kas kasutate teistsugust süsteemi? MyBB on tasuta ja avatud lähtekoodiga intuitiivne ja laiendatav foorumiprogramm. MyBB lähtekoodi hostitakse GitHubis. See juhend sho

TaskBoardi installimine ja konfigureerimine Fedora 30-s

TaskBoardi installimine ja konfigureerimine Fedora 30-s

Kas kasutate teistsugust süsteemi? Sissejuhatus TaskBoard on tasuta avatud lähtekoodiga tööriist, mida saab kasutada tehtavate asjade jälgimiseks. See pakub

Fork CMS-i installimine Fedora 28-sse

Fork CMS-i installimine Fedora 28-sse

Kas kasutate teistsugust süsteemi? Fork on avatud lähtekoodiga CMS, mis on kirjutatud PHP-s. Forksi lähtekoodi hostitakse GitHubis. See juhend näitab teile, kuidas Fork CM-i installida

Kuidas installida LimeSurvey CE Fedora 28-le

Kuidas installida LimeSurvey CE Fedora 28-le

Kas kasutate teistsugust süsteemi? LimeSurvey on avatud lähtekoodiga küsitlusprogramm, mis on kirjutatud PHP-s. LimeSurvey lähtekoodi hostitakse GitHubis. See juhend näitab teile

Backdrop CMS 1.8.0 installimine Fedora 26 LAMP VPS-ile

Backdrop CMS 1.8.0 installimine Fedora 26 LAMP VPS-ile

Kas kasutate teistsugust süsteemi? Backdrop CMS 1.8.0 on lihtne ja paindlik, mobiilisõbralik, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS), mis võimaldab meil

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