Како компајлирати Нгинк из извора на Дебиан 10

Увод

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

То је веома модуларан комад софтвера. Чак су и неки од наизглед „уграђених“ делова софтвера, као што су ГЗИП или ССЛ, заправо креирани као модули који се могу омогућити и онемогућити током времена израде.

Има основне (нативне) модуле и модуле треће стране (екстерне) које је креирала заједница. Тренутно постоји преко стотину модула независних произвођача које можемо да користимо.

Написан на Ц, то је брз и лаган комад софтвера.

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

Мораћете да изаберете да ли ћете преузети главну или стабилну верзију, али њихова израда је иста.

У овом водичу ћемо саставити главну верзију Нгинк-а на Дебиан 10 (бустер). Користићемо све доступне модуле у отвореној верзији Нгинк-а.

Зашто компајлирати и инсталирати Нгинк из извора

Вероватно се питате зашто би компајлирали Нгинк из извора када можете да користите припремљене пакете. Ево неколико разлога зашто бисте можда желели да сами саставите одређени софтвер:

  • За контролу опција конфигурације.
  • Да инсталирате софтвер где год желите. Можете чак инсталирати неколико различитих верзија истог софтвера.
  • Да бисте контролисали верзију коју инсталирате. Дистрибуције не остају увек ажурне са најновијим верзијама свих пакета, посебно додатака софтверским пакетима.
  • Да бисте боље разумели како софтвер функционише.

Стабилна у односу на главну верзију

Нгинк Опен Соурце је доступан у две верзије:

  • Маинлине – Укључује најновије функције и исправке грешака и увек је ажуриран. Поуздан је, али може укључивати неке експерименталне модуле, а може имати и одређени број нових грешака.
  • Стабилан – Не укључује све најновије функције, али има критичне исправке грешака које се увек враћају на главну верзију.

Основни модули у односу на модуле треће стране

Нгинк има две врсте модула које можете да користите: основне модуле и модуле треће стране.

Основни Нгинк програмери граде основне модуле и они су део самог софтвера.

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

Статички модули наспрам динамичких модула

Статички модули постоје у Нгинк-у од прве верзије. Динамички модули су представљени са Нгинк-ом 1.9.11+ у фебруару 2016.

Код статичких модула, скуп модула који чине Нгинк бинарни ./configureфајл је фиксиран у време компајлирања помоћу скрипте. Статички модули користе --with-foo_bar_moduleили --add-module=PATHсинтаксу.

За компајлирање основног (стандардног) модула као динамичког додајемо =dynamic, на пример --with-http_image_filter_module=dynamic.

Да бисмо саставили модул треће стране као динамички, користимо --add-dynamic-module=/path/to/moduleсинтаксу, а затим их учитавамо коришћењем load_moduleдирективе у глобалном контексту nginx.confдатотеке.

Захтеви за прављење Нгинк-а из извора

У поређењу са неким другим УНИКС/Линук софтвером, Нгинк је прилично лаган и нема много зависности од библиотеке. Подразумевана конфигурација изградње зависи од само 3 библиотеке које треба инсталирати: ОпенССЛ/ЛибреССЛ/БорингССЛ, Злиб и ПЦРЕ.

НАПОМЕНА : Нгинк се такође може компајлирати са ЛибреССЛ и БорингССЛ крипто библиотекама уместо ОпенССЛ-а.

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

Проверите верзију Дебиана.

lsb_release -ds # Debian GNU/Linux 10 (buster)

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

adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe

НАПОМЕНА : Замените johndoeсвојим корисничким именом .

Пребаците се на новог корисника.

su - johndoe

Подесите временску зону.

sudo dpkg-reconfigure tzdata

Ажурирајте софтвер свог оперативног система.

sudo apt update && sudo apt upgrade -y

Инсталирајте потребне пакете.

sudo apt install -y software-properties-common ufw

Направите Нгинк из извора

Нгинк је програм написан у Ц-у, тако да ћете прво морати да инсталирате алатку за компајлер. Инсталирати build-essential, gitи tree.

sudo apt install -y build-essential git tree

Преузмите најновију главну верзију Нгинк изворног кода и распакујте архиву изворног кода. Нгинк изворни код се дистрибуира као компримована архива, као и већина Уник и Линук софтвера.

wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz

Преузмите обавезни изворни код Нгинк зависности и распакујте га.

# PCRE version 8.43 wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.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.1c wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz

Инсталирајте опционе Нгинк зависности.

sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev

Очистите све .tar.gzдатотеке. Не требају нам више.

rm -rf *.tar.gz

Унесите Нгинк изворни директоријум.

cd ~/nginx-1.17.2

За добру листу мера директоријуме и датотеке које сачињавају Нгинк изворни код са tree.

tree -L 2 .

Копирајте страницу приручника на /usr/share/man/man8/.

sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8 sudo gzip /usr/share/man/man8/nginx.8 ls /usr/share/man/man8/ | grep nginx.8.gz # Check that man page for Nginx is working man nginx

За помоћ, можете видети комплетну листу ажурираних опција времена компајлирања Нгинк-а тако што ћете покренути следеће.

./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic

Конфигуришите, компајлирајте и инсталирајте Нгинк.

./configure --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib/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=Debian \ --builddir=nginx-1.17.2 \ --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_modules_path=/usr/share/perl/5.26.1 \ --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.43 \ --with-pcre-jit \ --with-zlib=../zlib-1.2.11 \ --with-openssl=../openssl-1.1.1c \ --with-openssl-opt=no-nextprotoneg \ --with-debug make sudo make install

Након компилације, идите на свој почетни ( ~) директоријум.

cd ~

Симболна веза /usr/lib/nginx/modulesдо /etc/nginx/modules. Ово је стандардно место за Нгинк модуле.

sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Одштампајте верзију Нгинк-а, верзију компајлера и конфигуришите параметре скрипте.

sudo nginx -V # nginx version: nginx/1.17.2 (Debian) # built by gcc 8.3.0 (Debian 8.3.0-6) # built with OpenSSL 1.1.1c 28 May 2019 # TLS SNI support enabled # configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . . # . . . # . . .

Креирајте Нгинк системску групу и корисника.

sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx # Check that user and group are created sudo tail -n 1 /etc/passwd /etc/group /etc/shadow

Проверите Нгинк синтаксу и потенцијалне грешке.

sudo nginx -t # Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory) # Create NGINX cache directories and set proper permissions sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp sudo chmod 700 /var/cache/nginx/* sudo chown nginx:root /var/cache/nginx/* # Re-check syntax and potential errors. sudo nginx -t

Направите Нгинк системску јединичну датотеку.

sudo vim /etc/systemd/system/nginx.service

Попуните /etc/systemd/system/nginx.serviceдатотеку следећим садржајем.

[Unit] Description=nginx - high performance web server Documentation=https://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target

Омогућите Нгинк да се покрене при покретању и одмах покрените Нгинк.

sudo systemctl enable nginx.service sudo systemctl start nginx.service

Проверите да ли ће се Нгинк аутоматски покренути након поновног покретања.

sudo systemctl is-enabled nginx.service # enabled

Проверите статус.

sudo systemctl status nginx.service

НАПОМЕНА : Можете да проверите да ли Нгинк ради тако што ћете отићи на домен или ИП адресу вашег сајта у веб прегледачу. Видећете Нгинк страницу добродошлице. То је показатељ да је Нгинк покренут и ради на вашем ВПС-у.

Креирајте УФВ Нгинк профил апликације.

sudo vim /etc/ufw/applications.d/nginx

Копирајте/налепите следећи садржај у /etc/ufw/applications.d/nginxдатотеку.

[Nginx HTTP] title=Web Server (Nginx, HTTP) description=Small, but very powerful and efficient web server ports=80/tcp [Nginx HTTPS] title=Web Server (Nginx, HTTPS) description=Small, but very powerful and efficient web server ports=443/tcp [Nginx Full] title=Web Server (Nginx, HTTP + HTTPS) description=Small, but very powerful and efficient web server ports=80,443/tcp

Потврдите да су профили УФВ апликација креирани и препознати.

sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH

Нгинк, подразумевано, генерише .defaultдатотеке резервних копија у /etc/nginx. Уклоните .defaultдатотеке из /etc/nginxдиректоријума.

sudo rm /etc/nginx/*.default

Поставите истицање синтаксе Нгинк конфигурације за Вим едитор у ~/.vim.

# For regular non-root user mkdir ~/.vim/ cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/ # For root user sudo mkdir /root/.vim/ sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/

НАПОМЕНА : Ако урадите горњи корак, добићете лепо истицање синтаксе када уређујете Нгинк конфигурационе датотеке у Вим едитору.

Креирајте conf.d, snippets, sites-availableи sites-enabledдиректоријуме у /etc/nginx.

sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}

Промените дозволе и власништво групе над Нгинк датотекама евиденције.

sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log

Направите конфигурацију ротације дневника за Нгинк.

sudo vim /etc/logrotate.d/nginx

Попуните датотеку следећим текстом, а затим сачувајте и изађите.

/var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }

Уклоните све преузете датотеке из кућног директоријума.

cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/

Резиме

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


Подесите Цацти на Дебиан Јессие

Подесите Цацти на Дебиан Јессие

Увод Цацти је алатка отвореног кода за праћење и графику која је у потпуности заснована на РРД подацима. Преко Цацтуса можете надгледати скоро сваку врсту уређаја

Подесите иРедМаил на Дебиан Вхеези

Подесите иРедМаил на Дебиан Вхеези

Користите другачији систем? Овај водич ће вам показати како да инсталирате групни софтвер иРедМаил на нову инсталацију Дебиан Вхеези-а. Требало би да користите сервис

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Користите другачији систем? Ако купите Дебиан сервер, увек би требало да имате најновије безбедносне закрпе и ажурирања, без обзира да ли спавате или не

Подесите сопствени ДНС сервер на Дебиан/Убунту

Подесите сопствени ДНС сервер на Дебиан/Убунту

Овај водич објашњава како да подесите ДНС сервер користећи Бинд9 на Дебиан-у или Убунту-у. У целом чланку замените иоур-домаин-наме.цом у складу са тим. Ат тх

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

У овом чланку ћемо видети како да компајлирате и инсталирате Нгинк маинлине из званичних извора Нгинк-а помоћу модула ПагеСпеед, који вам омогућава да

Како инсталирати Канбоард на Дебиан 9

Како инсталирати Канбоард на Дебиан 9

Користите другачији систем? Увод Канбоард је бесплатни софтвер за управљање пројектима отвореног кода који је дизајниран да олакша и визуализује

Како инсталирати Гитеа на Дебиан 9

Како инсталирати Гитеа на Дебиан 9

Користите другачији систем? Гитеа је алтернативни систем за контролу верзија отвореног кода који се самостално хостује и покреће Гит. Гитеа је написана на Голангу и јесте

Инсталирајте Линис на Дебиан 8

Инсталирајте Линис на Дебиан 8

Увод Линис је бесплатна алатка за ревизију система отвореног кода коју користе многи системски администратори да верификују интегритет и ојачају своје системе. И

Како инсталирати Тхелиа 2.3 на Дебиан 9

Како инсталирати Тхелиа 2.3 на Дебиан 9

Користите другачији систем? Тхелиа је алатка отвореног кода за креирање веб локација за е-пословање и управљање онлајн садржајем написаним у ПХП-у. Тхелиа изворни код и

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво

Како инсталирати Голанг 1.8.3 на ЦентОС 7, Убунту 16.04 и Дебиан 9

Како инсталирати Голанг 1.8.3 на ЦентОС 7, Убунту 16.04 и Дебиан 9

Голанг је програмски језик који је развио Гоогле. Захваљујући својој свестраности, једноставности и поузданости, Голанг је постао један од најпопуларнијих

Ресетујте МиСКЛ роот лозинку на Дебиан/Убунту

Ресетујте МиСКЛ роот лозинку на Дебиан/Убунту

Ако сте заборавили своју МиСКЛ роот лозинку, можете је ресетовати пратећи кораке у овом чланку. Процес је прилично једноставан и ради на њима

Креирање мрежних дељења коришћењем Самбе на Дебиан-у

Креирање мрежних дељења коришћењем Самбе на Дебиан-у

Понекад морамо да делимо датотеке које Виндовс клијенти морају да виде. Пошто системи засновани на Фусе-у раде само на Линук-у, добро је да се представимо

Подешавање Цоунтер Стрике: Соурце на Дебиан-у

Подешавање Цоунтер Стрике: Соурце на Дебиан-у

У овом водичу ћемо подесити сервер игре Цоунтер Стрике: Соурце на Дебиан 7. Ове команде су тестиране на Дебиан 7, али би такође требало да раде о

Како инсталирати Унтурнед 2.2.5 на Дебиан 8

Како инсталирати Унтурнед 2.2.5 на Дебиан 8

У овом водичу ћете научити како да подесите Унтурнед 2.2.5 сервер на Вултр ВПС-у који користи Дебиан 8. Напомена: Ово је уређена верзија Унтурнед-а која не

Како инсталирати Цацхет на Дебиан 8

Како инсталирати Цацхет на Дебиан 8

У овом водичу ћете научити како да инсталирате Цацхет на Дебиан 8. Цацхет је моћан систем статусних страница отвореног кода. Инсталација Овај водич је у току

Аутоматски резервишите више МиСКЛ или МариаДБ база података

Аутоматски резервишите више МиСКЛ или МариаДБ база података

Увод У овом тексту, добро прођите кроз како да направите резервну копију више МиСКЛ или МариаДБ база података које се налазе на истој машини користећи прилагођени басх скрипт

Подешавање Цхроот-а на Дебиан-у

Подешавање Цхроот-а на Дебиан-у

Овај чланак ће вас научити како да подесите цхроот затвор на Дебиан-у. Претпостављам да користите Дебиан 7.к. Ако користите Дебиан 6 или 8, ово би могло радити, али

Како инсталирати Реадер Селф 3.5 РСС Реадер на Дебиан 9 ЛАМП ВПС

Како инсталирати Реадер Селф 3.5 РСС Реадер на Дебиан 9 ЛАМП ВПС

Користите другачији систем? Реадер Селф 3.5 је једноставан и флексибилан, бесплатан и отворени извор, РСС читач који се самостално хостује и алтернатива Гоогле Реадер-у. Реадер Сел

Како инсталирати Бацкдроп ЦМС 1.8.0 на Дебиан 9 ЛАМП ВПС

Како инсталирати Бацкдроп ЦМС 1.8.0 на Дебиан 9 ЛАМП ВПС

Користите другачији систем? Бацкдроп ЦМС 1.8.0 је једноставан и флексибилан, прилагођен мобилним уређајима, бесплатан и отворени систем за управљање садржајем (ЦМС) који нам омогућава

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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