Hogyan fordítsuk le az Nginx-et forrásból a Fedora 25-ön

Az NGINX használható HTTP/HTTPS szerverként, fordított proxyszerverként, levelezőproxyszerverként, terheléselosztóként, TLS- lezáróként vagy gyorsítótárazó szerverként. Felépítése meglehetősen moduláris. A közösség által létrehozott natív modulokat és harmadik féltől származó modulokat tartalmaz. A C programozási nyelven íródott, ez egy nagyon gyors és könnyű szoftver.

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.

Az NGINX forráskódból történő telepítése viszonylag "egyszerű" – töltse le az NGINX forráskód legújabb verzióját, konfigurálja, készítse el és telepítse.

Ebben az oktatóanyagban a fővonali verziót fogom használni , amely az írás idején 1.13.3. Frissítse a verziószámokat ennek megfelelően, amikor újabb verziók válnak elérhetővé.

Az NGINX forrásból történő építésének követelményei

Kötelező követelmények:

  • OpenSSL könyvtár 1.0.2 és 1.1.0 közötti verziója
  • zlib könyvtár 1.1.3 és 1.2.11 közötti verziója
  • PCRE könyvtár verzió 4.4 és 8.41 között
  • GCC fordító

Választható követelmények:

Mielőtt elkezded

  1. Rendszeres felhasználósudo létrehozása a következő hozzáféréssel :

  2. Váltás új felhasználóra:

    su - <username>
    
  3. Rendszerfrissítés:

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

Építsd meg az NGINX-et a forrásból

  1. Telepítse a "Fejlesztői eszközöket", a Vim-szerkesztőt, a wget-et és a gcc-c++-t:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Töltse le a legújabb fővonal verzióját nginx forráskódot, és bontsuk ki:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Töltse le az NGINX függőségek forráskódját, és bontsa ki őket:

    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. Töltse le és telepítse az opcionális NGINX-függőségeket:

    # 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. Távolítsa el az összes .tar.gzfájlt. Már nincs rájuk szükségünk:

    rm -rf *.tar.gz
    
  6. Lépjen az NGINX forráskönyvtárába:

    cd ~/nginx-1.13.3
    
  7. A jó mérés érdekében sorolja fel az NGINX forráskód fájljait és könyvtárait:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Másolja az NGINX kézikönyv oldalát ide /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. Segítségként felsorolhatja az elérhető konfigurációs kapcsolókat a következő futtatásával:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Az NGINX konfigurálása, fordítása és telepítése:

    ./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. Nyomtassa ki az NGINX verziót, a fordítóverziót, és konfigurálja a szkriptparamétereket:

    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. Hozza létre az NGINX rendszerfelhasználót és -csoportot:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Ellenőrizze a szintaxist és a lehetséges hibákat:

    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. Hozzon létre egy rendszeregységfájlt az NGINX számára:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Másolja/illessze be a következő tartalmat:

    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. Indítsa el az NGINX-et:

    sudo systemctl start nginx.service
    
  17. Engedélyezze az NGINX automatikus elindulását rendszerindításkor:

    sudo systemctl enable nginx.service
    
  18. Ellenőrizze, hogy az NGINX elindul-e újraindítás után:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Ellenőrizze, hogy az NGINX fut-e:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Indítsa újra a VPS-t, hogy ellenőrizze, hogy az NGINX automatikusan elindul-e:

    sudo shutdown -r now
    
  21. Távolítsa el az archaikus fájlokat a /etc/nginx/könyvtárból:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Hely szintaxiskiemelést fájlok nginx konfiguráció vimbe ~/.vim/. Szép szintaxiskiemelés jelenik meg az NGINX konfigurációs fájl szerkesztésekor:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Készítsen conf.d/könyvtárat a /etc/nginx/könyvtárban. Ebben a könyvtárban virtuális szervereket és upstreameket helyezhet el:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Távolítsa el a kibontott könyvtárakat és fájlokat a saját könyvtárából:

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

Következtetés

Ez az. Most telepítve van az NGINX legújabb verziója. Statikusan fordítják néhány fontos könyvtár ellen, mint például az OpenSSL. A rendszer OpenSSL verziója gyakran elavult. Ezzel a módszerrel a beiktatás egy újabb változata OpenSSL, akkor kihasználják az új titkosításokról mint CHACHA20_POLY1305és protokollok, mint a TLS 1.3 , amely elérhető lesz OpenSSL 1.1.1(amely még nem jelent meg a cikk írásakor).


A BigTree CMS telepítése Fedora 26 LAMP VPS-re

A BigTree CMS telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A BigTree CMS 4.2 egy gyors és könnyű, ingyenes és nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS), amely kiterjedt

A Koel telepítése Fedora 28-ra

A Koel telepítése Fedora 28-ra

Más rendszert használ? A Koel egy egyszerű, webalapú személyes audio streaming alkalmazás, amelyet kliens oldalon Vue-ban, szerver oldalon pedig Laravelben írtak. Koe

A Grav CMS telepítése a Fedora 28-ra

A Grav CMS telepítése a Fedora 28-ra

Más rendszert használ? A Grav egy nyílt forráskódú, lapos fájlú CMS, amelyet PHP-ben írtak. A Grav-forráskód nyilvánosan a GitHubon található. Ez az útmutató megmutatja, hogyan t

Az Akaunting telepítése Fedora 28-ra

Az Akaunting telepítése Fedora 28-ra

Más rendszert használ? Az Akaunting egy ingyenes, nyílt forráskódú és online számviteli szoftver kisvállalkozások és szabadúszók számára. Szellemesen épült

A Tiny Tiny RSS Reader telepítése Fedora 26 LAMP VPS-re

A Tiny Tiny RSS Reader telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy

Az InvoicePlane telepítése a Fedora 28-ra

Az InvoicePlane telepítése a Fedora 28-ra

Más rendszert használ? Az InvoicePlane egy ingyenes és nyílt forráskódú számlázó alkalmazás. Forráskódja megtalálható ezen a Github-tárházban. Ez az útmutató

Telepítsen egy Minecraft szervert a Fedora 26-ra

Telepítsen egy Minecraft szervert a Fedora 26-ra

Más rendszert használ? Ebben az oktatóanyagban végigvezetem Önt a Minecraft szerver beállításán egy nagy teljesítményű SSD VPS-en a Vultr-nál. Meg fogod tanulni ho

Hogyan fordítsuk le az Nginx-et forrásból a Fedora 25-ön

Hogyan fordítsuk le az Nginx-et forrásból a Fedora 25-ön

Más rendszert használ? Az NGINX használható HTTP/HTTPS szerverként, fordított proxy szerverként, levelező proxy szerverként, terheléselosztóként, TLS terminátorként vagy gyorsítótárként

A Pagekit 1.0 CMS telepítése Fedora 26 LAMP VPS-re

A Pagekit 1.0 CMS telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A Pagekit 1.0 CMS egy gyönyörű, moduláris, bővíthető és könnyű, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS)

A Subrion 4.1 CMS telepítése Fedora 26 LAMP VPS-re

A Subrion 4.1 CMS telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A Subrion 4.1 CMS egy hatékony és rugalmas nyílt forráskódú tartalomkezelő rendszer (CMS), amely intuitív és világos tartalmat biztosít.

Telepítse a TaskServer-t (taskd) a Fedora 26-on

Telepítse a TaskServer-t (taskd) a Fedora 26-on

Más rendszert használ? A TaskWarrior egy nyílt forráskódú időkezelő eszköz, amely a Todo.txt alkalmazás és klónjai továbbfejlesztése. Mivel a th

A CMS Made Simple 2.2 telepítése Fedora 26 LAMP VPS-re

A CMS Made Simple 2.2 telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A CMS Made Simple 2.2 egy rugalmas és bővíthető, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amelyet intelligensen terveztek

A Bro IDS telepítése Fedora 25-re

A Bro IDS telepítése Fedora 25-re

Más rendszert használ? Bevezetés A Bro egy nyílt forráskódú hálózati forgalomelemző. Ez elsősorban egy biztonsági figyelő, amely a vonal összes forgalmát ellenőrzi

Az X-Cart 5 telepítése Fedora 31-re

Az X-Cart 5 telepítése Fedora 31-re

Más rendszert használ? Az X-Cart egy rendkívül rugalmas, nyílt forráskódú e-kereskedelmi platform rengeteg funkcióval és integrációval. Az X-Cart forráskódja hoste

A Matomo Analytics telepítése a Fedora 28-ra

A Matomo Analytics telepítése a Fedora 28-ra

Más rendszert használ? A Matomo (korábban Piwik) egy nyílt forráskódú elemzési platform, a Google Analytics nyílt alternatívája. A Matomo forrás o

A MyBB telepítése Fedora 28-ra

A MyBB telepítése Fedora 28-ra

Más rendszert használ? A MyBB egy ingyenes és nyílt forráskódú, intuitív és bővíthető fórumprogram. A MyBB forráskódja a GitHubon található. Ez az útmutató sho

A TaskBoard telepítése és konfigurálása a Fedora 30 rendszeren

A TaskBoard telepítése és konfigurálása a Fedora 30 rendszeren

Más rendszert használ? Bevezetés A TaskBoard egy ingyenes és nyílt forráskódú eszköz, amely segítségével nyomon követheti az elvégzendő dolgokat. Ez biztosítja

A LimeSurvey CE telepítése Fedora 28-ra

A LimeSurvey CE telepítése Fedora 28-ra

Más rendszert használ? A LimeSurvey egy PHP nyelven írt nyílt forráskódú felmérési program. A LimeSurvey forráskódja a GitHubon található. Ez az útmutató megmutatja neked

A Backdrop CMS 1.8.0 telepítése Fedora 26 LAMP VPS-re

A Backdrop CMS 1.8.0 telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A Backdrop CMS 1.8.0 egy egyszerű és rugalmas, mobilbarát, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amely lehetővé teszi

A Craft CMS telepítése a Fedora 29 rendszeren

A Craft CMS telepítése a Fedora 29 rendszeren

Más rendszert használ? A Craft CMS egy PHP nyelven írt nyílt forráskódú CMS. A Craft CMS forráskódja a GitHubon található. Ez az útmutató megmutatja, hogyan kell telepíteni

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket