Si të përpiloni Nginx nga burimi në Fedora 25

NGINX mund të përdoret si një server HTTP/HTTPS, server proxy të kundërt, server proxy mail, balancues ngarkese, terminator TLS ose server memorie. Nga dizajni është mjaft modular. Ka module vendase dhe module të palëve të treta të krijuara nga komuniteti. I shkruar në gjuhën e programimit C, është një softuer shumë i shpejtë dhe i lehtë.

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.

Instalimi i NGINX nga kodi burimor është relativisht "i lehtë" - shkarkoni versionin më të fundit të kodit burimor NGINX, konfiguroni, ndërtoni dhe instaloni atë.

Në këtë tutorial do të përdor versionin kryesor , i cili është 1.13.3 në kohën e shkrimit. Përditësoni numrat e versioneve në përputhje me rrethanat kur versionet më të reja të jenë të disponueshme.

Kërkesat për ndërtimin e NGINX nga burimi

Kërkesat e detyrueshme:

  • Versioni i bibliotekës OpenSSL midis 1.0.2 - 1.1.0
  • Versioni i bibliotekës zlib midis 1.1.3 - 1.2.11
  • Versioni i bibliotekës PCRE midis 4.4 - 8.41
  • Përpiluesi GCC

Kërkesat opsionale:

Perpara se te fillosh

  1. Krijo përdorues të rregullt me sudoakses :

  2. Kalo te përdoruesi i ri:

    su - <username>
    
  3. Sistemi i përditësimit:

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

Ndërtoni NGINX nga burimi

  1. Instaloni "Veglat e Zhvillimit", redaktuesin Vim, wget dhe gcc-c++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Shkarkoni versionin më të fundit kryesor të kodit burimor NGINX dhe hiqni atë:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Shkarkoni kodin burimor të varësive NGINX dhe nxirrni ato:

    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. Shkarkoni dhe instaloni varësitë opsionale NGINX:

    # 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. Hiq të gjithë .tar.gzskedarët. Nuk na duhen më:

    rm -rf *.tar.gz
    
  6. Shkoni te drejtoria e burimit NGINX:

    cd ~/nginx-1.13.3
    
  7. Për masë të mirë, listoni skedarët dhe drejtoritë e kodit burimor NGINX:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Kopjo faqen manuale NGINX në /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. Për ndihmë, mund të listoni çelësat e disponueshëm të konfigurimit duke ekzekutuar:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Konfiguroni, përpiloni dhe instaloni 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. Printoni versionin NGINX, versionin e përpiluesit dhe konfiguroni parametrat e skriptit:

    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. Krijo përdoruesin dhe grupin e sistemit NGINX:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Kontrolloni sintaksën dhe gabimet e mundshme:

    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. Krijoni një skedar të njësisë së sistemit për NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Kopjo/ngjit përmbajtjen e mëposhtme:

    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. Filloni NGINX:

    sudo systemctl start nginx.service
    
  17. Aktivizo NGINX që të fillojë automatikisht në nisje:

    sudo systemctl enable nginx.service
    
  18. Kontrolloni nëse NGINX do të fillojë pas një rindezjeje:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Kontrolloni nëse NGINX po funksionon:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Rinisni VPS-në tuaj për të verifikuar që NGINX fillon automatikisht:

    sudo shutdown -r now
    
  21. Hiq skedarët arkaikë nga /etc/nginx/drejtoria:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Vendosni skedarët e nënvizimit të sintaksës të konfigurimit NGINX për vim~/.vim/. Do të paraqiteni me një theksim të bukur sintaksor kur redaktoni skedarin e konfigurimit NGINX:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Krijoni një conf.d/drejtori në /etc/nginx/drejtori. Në këtë direktori, ju mund të vendosni serverë virtualë dhe në rrjedhën e sipërme:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Hiqni drejtoritë dhe skedarët e nxjerrë nga drejtoria juaj kryesore:

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

konkluzioni

Kjo eshte. Tani keni të instaluar versionin më të ri të NGINX. Është përpiluar në mënyrë statike kundër disa bibliotekave të rëndësishme si OpenSSL. Shpesh, versioni OpenSSL i sistemit është i vjetëruar. Duke përdorur këtë metodë të instalimit me një version më të ri të OpenSSL, ju mund të përfitoni nga kodet e reja si CHACHA20_POLY1305dhe protokollet si TLS 1.3 që do të jenë të disponueshme në OpenSSL 1.1.1(i cili nuk është lëshuar në kohën e shkrimit).

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë