Kā kompilēt Nginx no avota vietnē Fedora 25

NGINX var izmantot kā HTTP/HTTPS serveri, reverso starpniekserveri, pasta starpniekserveri, slodzes balansētāju, TLS terminatoru vai kešatmiņas serveri. Pēc konstrukcijas tas ir diezgan modulārs. Tam ir kopienas izveidoti vietējie moduļi un trešo pušu moduļi. Tā ir rakstīta C programmēšanas valodā, un tā ir ļoti ātra un viegla programmatūra.

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 instalēšana no pirmkoda ir samērā "viegli" – lejupielādējiet jaunāko NGINX pirmkoda versiju, konfigurējiet, izveidojiet un instalējiet to.

Šajā apmācībā es izmantošu galveno versiju, kas rakstīšanas laikā ir 1.13.3. Attiecīgi atjauniniet versiju numurus, kad kļūst pieejamas jaunākas versijas.

Prasības NGINX izveidei no avota

Obligātās prasības:

  • OpenSSL bibliotēkas versija no 1.0.2 līdz 1.1.0
  • zlib bibliotēkas versija no 1.1.3 līdz 1.2.11
  • PCRE bibliotēkas versija no 4.4 līdz 8.41
  • GCC kompilators

Izvēles prasības:

Pirms tu sāc

  1. Izveidot parastu lietotāju ar sudopiekļuvi :

  2. Pārslēgties uz jauno lietotāju:

    su - <username>
    
  3. Atjaunināt sistēmu:

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

Veidojiet NGINX no avota

  1. Instalējiet "Izstrādes rīkus", Vim redaktoru, wget un gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Lejupielādējiet jaunāko NGINX pirmkoda galveno versiju un attīriet to:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Lejupielādējiet NGINX atkarību pirmkodu un izņemiet tos:

    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. Lejupielādējiet un instalējiet izvēles NGINX atkarības:

    # 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. Noņemiet visus .tar.gzfailus. Mums tie vairs nav vajadzīgi:

    rm -rf *.tar.gz
    
  6. Dodieties uz NGINX avota direktoriju:

    cd ~/nginx-1.13.3
    
  7. Lai iegūtu labus rezultātus, uzskaitiet NGINX pirmkoda failus un direktorijus:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Kopēt NGINX rokasgrāmatas lapu uz /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. Lai saņemtu palīdzību, varat uzskaitīt pieejamos konfigurācijas slēdžus, izpildot:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Konfigurējiet, kompilējiet un instalējiet 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. Izdrukājiet NGINX versiju, kompilatora versiju un konfigurējiet skripta parametrus:

    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. Izveidojiet NGINX sistēmas lietotāju un grupu:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Pārbaudiet sintaksi un iespējamās kļūdas:

    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. Izveidojiet sistēmas vienības failu NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Kopējiet/ielīmējiet šādu saturu:

    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. Sākt NGINX:

    sudo systemctl start nginx.service
    
  17. Iespējot NGINX automātisku palaišanu sāknēšanas laikā:

    sudo systemctl enable nginx.service
    
  18. Pārbaudiet, vai NGINX tiks startēts pēc atsāknēšanas:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Pārbaudiet, vai NGINX darbojas:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Pārstartējiet savu VPS, lai pārbaudītu, vai NGINX tiek palaists automātiski:

    sudo shutdown -r now
    
  21. Noņemiet arhaiskos failus no /etc/nginx/direktorija:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Vieta sintakse izceļot failus Nginx konfigurācija vimvērā ~/.vim/. Rediģējot NGINX konfigurācijas failu, jums tiks parādīts jauks sintakses izcelšana:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Izveidojiet conf.d/direktoriju /etc/nginx/direktorijā. Šajā direktorijā varat ievietot virtuālos serverus un augšupvērstus:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Noņemiet izvilktos direktorijus un failus no mājas direktorijas:

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

Secinājums

Tieši tā. Tagad jums ir instalēta jaunākā NGINX versija. Tas ir statiski kompilēts pret dažām svarīgām bibliotēkām, piemēram, OpenSSL. Bieži vien sistēmas OpenSSL versija ir novecojusi. Izmantojot šo instalēšanas metodi ar jaunāku OpenSSL versiju, varat izmantot jaunus šifrus, piemēram, CHACHA20_POLY1305un protokolus, piemēram, TLS 1.3, kas būs pieejami OpenSSL 1.1.1(kas rakstīšanas laikā vēl nebija izlaists).


Kā instalēt BigTree CMS uz Fedora 26 LAMP VPS

Kā instalēt BigTree CMS uz Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? BigTree CMS 4.2 ir ātra un viegla, bezmaksas un atvērtā koda, uzņēmuma līmeņa satura pārvaldības sistēma (CMS) ar plašu

Kā instalēt Koel vietnē Fedora 28

Kā instalēt Koel vietnē Fedora 28

Vai izmantojat citu sistēmu? Koel ir vienkārša tīmekļa personīgā audio straumēšanas lietotne, kas rakstīta Vue klienta pusē un Laravel servera pusē. Koe

Kā instalēt Grav CMS vietnē Fedora 28

Kā instalēt Grav CMS vietnē Fedora 28

Vai izmantojat citu sistēmu? Grav ir atvērtā koda vienotu failu CMS, kas rakstīts PHP. Grav pirmkods ir publiski mitināts vietnē GitHub. Šī rokasgrāmata parādīs, kā t

Akaunting instalēšana operētājsistēmā Fedora 28

Akaunting instalēšana operētājsistēmā Fedora 28

Vai izmantojat citu sistēmu? Akaunting ir bezmaksas atvērtā koda un tiešsaistes grāmatvedības programmatūra, kas paredzēta maziem uzņēmumiem un ārštata darbiniekiem. Tas ir veidots asprātīgi

Kā instalēt Tiny Tiny RSS lasītāju Fedora 26 LAMP VPS

Kā instalēt Tiny Tiny RSS lasītāju Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? Tiny Tiny RSS Reader ir bezmaksas un atvērtā koda pašmitināts tīmekļa ziņu plūsmas (RSS/Atom) lasītājs un apkopotājs, kas paredzēts

Kā instalēt InvoicePlane vietnē Fedora 28

Kā instalēt InvoicePlane vietnē Fedora 28

Vai izmantojat citu sistēmu? InvoicePlane ir bezmaksas un atvērtā koda rēķinu lietojumprogramma. Tās avota kodu var atrast šajā Github repozitorijā. Šis ceļvedis

Instalējiet Minecraft serveri Fedora 26

Instalējiet Minecraft serveri Fedora 26

Vai izmantojat citu sistēmu? Šajā apmācībā es jums pastāstīšu par Minecraft servera iestatīšanu augstas veiktspējas SSD VPS vietnē Vultr. Jūs iemācīsities ho

Kā kompilēt Nginx no avota vietnē Fedora 25

Kā kompilēt Nginx no avota vietnē Fedora 25

Vai izmantojat citu sistēmu? NGINX var izmantot kā HTTP/HTTPS serveri, reverso starpniekserveri, pasta starpniekserveri, slodzes balansētāju, TLS terminatoru vai kešatmiņu.

Kā instalēt Pagekit 1.0 CMS uz Fedora 26 LAMP VPS

Kā instalēt Pagekit 1.0 CMS uz Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? Pagekit 1.0 CMS ir skaista, modulāra, paplašināma un viegla, bezmaksas un atvērtā koda satura pārvaldības sistēma (CMS) ar

Kā instalēt Subrion 4.1 CMS uz Fedora 26 LAMP VPS

Kā instalēt Subrion 4.1 CMS uz Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? Subrion 4.1 CMS ir jaudīga un elastīga atvērtā pirmkoda satura pārvaldības sistēma (CMS), kas nodrošina intuitīvu un skaidru saturu.

Instalējiet TaskServer (taskd) Fedora 26

Instalējiet TaskServer (taskd) Fedora 26

Vai izmantojat citu sistēmu? TaskWarrior ir atvērtā koda laika pārvaldības rīks, kas ir lietojumprogrammas Todo.txt un tās klonu uzlabojums. Sakarā ar th

Kā instalēt CMS Made Simple 2.2 Fedora 26 LAMP VPS

Kā instalēt CMS Made Simple 2.2 Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? CMS Made Simple 2.2 ir elastīga un paplašināma, bezmaksas un atvērtā koda satura pārvaldības sistēma (CMS), kas ir inteliģenti izstrādāta, lai

Bro IDS instalēšana operētājsistēmā Fedora 25

Bro IDS instalēšana operētājsistēmā Fedora 25

Vai izmantojat citu sistēmu? Ievads Bro ir atvērtā koda tīkla trafika analizators. Tas galvenokārt ir drošības monitors, kas pārbauda visu satiksmi uz līnijas

How to Install X-Cart 5 on Fedora 31

How to Install X-Cart 5 on Fedora 31

Using a Different System? X-Cart is an extremely flexible open-source eCommerce platform with tons of features and integrations. X-Cart source code is hoste

Kā instalēt Matomo Analytics vietnē Fedora 28

Kā instalēt Matomo Analytics vietnē Fedora 28

Vai izmantojat citu sistēmu? Matomo (agrāk Piwik) ir atvērtā pirmkoda analīzes platforma, kas ir atvērta Google Analytics alternatīva. Matomo avots ir mitināts o

Kā instalēt MyBB vietnē Fedora 28

Kā instalēt MyBB vietnē Fedora 28

Vai izmantojat citu sistēmu? MyBB ir bezmaksas un atvērtā koda, intuitīva un paplašināma foruma programma. MyBB pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata būs sho

Kā instalēt un konfigurēt TaskBoard operētājsistēmā Fedora 30

Kā instalēt un konfigurēt TaskBoard operētājsistēmā Fedora 30

Vai izmantojat citu sistēmu? Ievads TaskBoard ir bezmaksas atvērtā koda rīks, ko var izmantot, lai izsekotu veicamajām lietām. Tas nodrošina

Fork CMS instalēšana operētājsistēmā Fedora 28

Fork CMS instalēšana operētājsistēmā Fedora 28

Vai izmantojat citu sistēmu? Fork ir atvērtā koda SPS, kas rakstīta PHP. Forks pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata parādīs, kā instalēt Fork CM

Kā instalēt LimeSurvey CE uz Fedora 28

Kā instalēt LimeSurvey CE uz Fedora 28

Vai izmantojat citu sistēmu? LimeSurvey ir atvērtā koda aptauju programma, kas rakstīta PHP. LimeSurvey pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs

Kā instalēt Backdrop CMS 1.8.0 Fedora 26 LAMP VPS

Kā instalēt Backdrop CMS 1.8.0 Fedora 26 LAMP VPS

Vai izmantojat citu sistēmu? Backdrop CMS 1.8.0 ir vienkārša un elastīga, mobilajām ierīcēm draudzīga, bezmaksas un atvērtā koda satura pārvaldības sistēma (SPS), kas ļauj mums

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk