Како компајлирати Нгинк из извора на Федора 25

НГИНКС се може користити као ХТТП/ХТТПС сервер, обрнути прокси сервер, маил проки сервер, балансатор оптерећења, ТЛС терминатор или сервер за кеширање. По дизајну је прилично модуларан. Има изворне модуле и модуле треће стране које је креирала заједница. Написан у програмском језику Ц, то је веома брз и лаган комад софтвера.

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.

Инсталирање НГИНКС-а из изворног кода је релативно „лако“ – преузмите најновију верзију изворног кода НГИНКС-а, конфигуришите је, направите и инсталирајте.

У овом туторијалу користићу главну верзију, која је 1.13.3 у време писања. Ажурирајте бројеве верзија у складу са тим када новије верзије постану доступне.

Захтеви за прављење НГИНКС-а из извора

Обавезни захтеви:

  • Верзија библиотеке ОпенССЛ између 1.0.2 - 1.1.0
  • верзија злиб библиотеке између 1.1.3 - 1.2.11
  • Верзија ПЦРЕ библиотеке између 4.4 - 8.41
  • ГЦЦ Цомпилер

Опциони захтеви:

Пре него што почнете

  1. Креирајте редовног корисника са sudoприступом :

  2. Пређите на новог корисника:

    su - <username>
    
  3. Систем ажурирања:

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

Направи НГИНКС из извора

  1. Инсталирајте „Алатке за развој“, Вим едитор, вгет и гцц-ц++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Преузмите најновију главну верзију НГИНКС изворног кода и распакујте је:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Преузмите изворни код НГИНКС зависности и распакујте их:

    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. Преузмите и инсталирајте опционе НГИНКС зависности:

    # 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. Уклоните све .tar.gzдатотеке. Не требају нам више:

    rm -rf *.tar.gz
    
  6. Идите у изворни директоријум НГИНКС:

    cd ~/nginx-1.13.3
    
  7. За добру меру, наведите датотеке и директоријуме НГИНКС изворног кода:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Копирајте страницу приручника за НГИНКС на /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. За помоћ, можете навести доступне конфигурационе прекидаче тако што ћете покренути:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Конфигуришите, компајлирајте и инсталирајте НГИНКС:

    ./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. Одштампајте верзију НГИНКС-а, верзију компајлера и конфигуришите параметре скрипте:

    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. Креирајте корисника и групу НГИНКС система:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Проверите синтаксу и потенцијалне грешке:

    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. Креирајте системску јединичну датотеку за НГИНКС:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Копирајте/налепите следећи садржај:

    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. Покрените НГИНКС:

    sudo systemctl start nginx.service
    
  17. Омогућите НГИНКС да се аутоматски покрене при покретању:

    sudo systemctl enable nginx.service
    
  18. Проверите да ли ће се НГИНКС покренути након поновног покретања:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Проверите да ли је НГИНКС покренут:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Поново покрените свој ВПС да бисте проверили да ли се НГИНКС покреће аутоматски:

    sudo shutdown -r now
    
  21. Уклоните архаичне датотеке из /etc/nginx/директоријума:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Поставите датотеке за истицање синтаксе НГИНКС конфигурације за vimу ~/.vim/. Биће вам представљено лепо истицање синтаксе када уређујете НГИНКС конфигурациону датотеку:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Направите conf.d/именик у /etc/nginx/директоријуму. У овај директоријум можете поставити виртуелне сервере и упстреамове:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Уклоните екстраховане директоријуме и датотеке из вашег кућног директоријума:

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

Закључак

То је то. Сада имате инсталирану најновију верзију НГИНКС-а. Саставља се статички у односу на неке важне библиотеке као што је ОпенССЛ. Често је системска ОпенССЛ верзија застарела. Коришћењем овог метода инсталирања са новијом верзијом ОпенССЛ-а, можете искористити предности нових шифара CHACHA20_POLY1305и протокола попут ТЛС 1.3 који ће бити доступни у ОпенССЛ-у 1.1.1(који није објављен у време писања).

Остави коментар

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више