Ako nastaviť bezobslužné aktualizácie na Debian 9 (Stretch)
Používate iný systém? Ak si zakúpite server Debian, mali by ste mať vždy najnovšie bezpečnostné záplaty a aktualizácie, či už spíte alebo nie
Úvod
Nginx je softvér webového servera s otvoreným zdrojovým kódom navrhnutý s ohľadom na vysokú súbežnosť, ktorý možno použiť ako server HTTP/HTTPS, reverzný proxy server, poštový proxy server, vyrovnávač zaťaženia softvéru, terminátor TLS, server ukladania do vyrovnávacej pamäte a ďalšie!
Je to značne modulárny softvér. Dokonca aj niektoré zdanlivo „zabudované“ časti softvéru, ako napríklad GZIP alebo SSL, sú v skutočnosti vytvorené ako moduly, ktoré je možné počas zostavovania povoliť a zakázať.
Má základné (natívne) moduly a moduly tretích strán (externé) vytvorené komunitou. V súčasnosti existuje viac ako sto modulov tretích strán, ktoré môžeme využiť.
Je to rýchly a ľahký softvér napísaný v C.
Inštalácia Nginx zo zdrojového kódu je pomerne jednoduchá – stiahnite si najnovšiu verziu zdrojového kódu Nginx, nakonfigurujte, zostavte a nainštalujte.
Budete si musieť vybrať, či si chcete stiahnuť hlavnú alebo stabilnú verziu, ale ich zostavovanie je rovnaké.
V tejto príručke zostavíme hlavnú verziu Nginx na Debian 10 (buster). Využijeme všetky dostupné moduly v open-source verzii Nginx.
Prečo kompilovať a inštalovať Nginx zo zdroja
Pravdepodobne sa pýtate, prečo by sa mal kompilovať Nginx zo zdroja, keď môžete použiť pripravené balíčky. Tu je niekoľko dôvodov, prečo si možno budete chcieť zostaviť konkrétny softvér sami:
Stabilná oproti hlavnej verzii
Nginx Open Source je k dispozícii v dvoch verziách:
Základné moduly vs. moduly tretích strán
Nginx má dva typy modulov, ktoré môžete použiť: základné moduly a moduly tretích strán.
Vývojári jadra Nginx vytvárajú základné moduly a sú súčasťou samotného softvéru.
Komunita vytvára moduly tretích strán a môžete ich použiť na rozšírenie funkčnosti. Existuje veľa užitočných modulov tretích strán.
Statické moduly vs. dynamické moduly
Statické moduly existujú v Nginx od úplne prvej verzie. Dynamické moduly boli predstavené s Nginx 1.9.11+ vo februári 2016.
Pri statických moduloch je sada modulov, ktoré tvoria binárny súbor Nginx, fixovaná v čase kompilácie ./configure
skriptom. Použitie --with-foo_bar_module
alebo --add-module=PATH
syntax statických modulov .
Na zostavenie základného (štandardného) modulu ako dynamického pridáme =dynamic
napríklad --with-http_image_filter_module=dynamic
.
Na kompiláciu modulu tretej strany ako dynamického používame --add-dynamic-module=/path/to/module
syntax a potom ich načítame pomocou load_module
smernice v globálnom kontexte nginx.conf
súboru.
Požiadavky na zostavenie Nginx zo zdroja
V porovnaní s niektorým iným softvérom UNIX/Linux je Nginx dosť ľahký a nemá veľa závislostí na knižnici. Predvolená konfigurácia zostavy závisí iba od 3 knižníc, ktoré sa majú nainštalovať: OpenSSL/LibreSSL/BoringSSL, Zlib a PCRE.
POZNÁMKA : Nginx je možné skompilovať aj s krypto knižnicami LibreSSL a BoringSSL namiesto OpenSSL.
Predtým ako začneš
Skontrolujte verziu Debianu.
lsb_release -ds # Debian GNU/Linux 10 (buster)
Vytvorte bežného používateľa s sudo
prístupom.
adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe
POZNÁMKA : Nahraďte johndoe
svojim užívateľským menom .
Prepnúť na nového používateľa.
su - johndoe
Nastavte časové pásmo.
sudo dpkg-reconfigure tzdata
Aktualizujte softvér operačného systému.
sudo apt update && sudo apt upgrade -y
Nainštalujte potrebné balíčky.
sudo apt install -y software-properties-common ufw
Zostavte Nginx zo zdroja
Nginx je program napísaný v C, takže najprv budete musieť nainštalovať kompilačný nástroj. Nainštalovať build-essential
, git
a tree
.
sudo apt install -y build-essential git tree
Stiahnite si najnovšiu hlavnú verziu zdrojového kódu Nginx a rozbaľte archív zdrojového kódu. Zdrojový kód Nginx je distribuovaný ako komprimovaný archív, ako väčšina softvéru pre Unix a Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Stiahnite si zdrojový kód povinných závislostí Nginx a extrahujte ho.
# 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
Nainštalujte voliteľné závislosti Nginx.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Vyčistite všetky .tar.gz
súbory. Už ich nepotrebujeme.
rm -rf *.tar.gz
Zadajte zdrojový adresár Nginx.
cd ~/nginx-1.17.2
Pre dobrú mieru uveďte adresáre a súbory, ktoré tvoria zdrojový kód Nginx s tree
.
tree -L 2 .
Skopírujte manuálovú stránku do /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
Ak potrebujete pomoc, môžete si zobraziť úplný zoznam aktuálnych možností kompilácie Nginx spustením nasledujúceho.
./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic
Nakonfigurujte, skompilujte a nainštalujte Nginx.
./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
Po kompilácii prejdite do svojho domovského ( ~
) adresára.
cd ~
Symbolický odkaz /usr/lib/nginx/modules
na /etc/nginx/modules
. Toto je štandardné miesto pre moduly Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Vytlačte verziu Nginx, verziu kompilátora a nakonfigurujte parametre skriptu.
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 . . . # . . . # . . .
Vytvorte skupinu a používateľa systému Nginx.
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
Skontrolujte syntax Nginx a potenciálne chyby.
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
Vytvorte súbor Nginx systemd unit.
sudo vim /etc/systemd/system/nginx.service
Naplňte /etc/systemd/system/nginx.service
súbor nasledujúcim obsahom.
[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
Povoľte spustenie Nginx pri štarte a okamžite spustite Nginx.
sudo systemctl enable nginx.service sudo systemctl start nginx.service
Skontrolujte, či sa Nginx automaticky spustí po reštarte.
sudo systemctl is-enabled nginx.service # enabled
Skontrolujte stav.
sudo systemctl status nginx.service
POZNÁMKA : Môžete si overiť, že Nginx beží tak, že prejdete na doménu alebo IP adresu vašej stránky vo webovom prehliadači. Uvidíte uvítaciu stránku Nginx. To je indikátor, že Nginx je na vašom VPS spustený.
Vytvorte profil aplikácie UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Skopírujte/prilepte nasledujúci obsah do /etc/ufw/applications.d/nginx
súboru.
[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
Overte, či sú vytvorené a rozpoznané aplikačné profily UFW.
sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH
Nginx štandardne generuje záložné .default
súbory vo formáte /etc/nginx
. Odstráňte .default
súbory z /etc/nginx
adresára.
sudo rm /etc/nginx/*.default
Umiestnite zvýraznenie syntaxe konfigurácie Nginx pre editor Vim do ~/.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/
POZNÁMKA : Vykonaním vyššie uvedeného kroku získate pekné zvýraznenie syntaxe pri úprave konfiguračných súborov Nginx v editore Vim.
Vytvorenie conf.d
, snippets
, sites-available
a sites-enabled
adresáre v /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Zmeňte povolenia a skupinové vlastníctvo súborov denníka Nginx.
sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Vytvorte konfiguráciu rotácie denníka pre Nginx.
sudo vim /etc/logrotate.d/nginx
Vyplňte súbor nasledujúcim textom, potom ho uložte a ukončite.
/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 }
Odstráňte všetky stiahnuté súbory z domovského adresára.
cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Zhrnutie
To je všetko. Teraz máte nainštalovanú najnovšiu verziu Nginx. Je kompilovaný staticky proti niektorým dôležitým knižniciam, ako je OpenSSL. Verzia OpenSSL dodávaná systémom je často zastaraná. Použitím tohto spôsobu inštalácie s novšou verziou OpenSSL môžete využiť moderné šifry ako CHACHA20_POLY1305
a protokoly ako TLS 1.3, ktoré sú dostupné v OpenSSL 1.1.1
. Navyše, kompiláciou vlastného binárneho súboru môžete prispôsobiť, aké funkcie bude váš Nginx poskytovať, čo je oveľa flexibilnejšie ako inštalácia vopred zostaveného binárneho súboru.
Používate iný systém? Ak si zakúpite server Debian, mali by ste mať vždy najnovšie bezpečnostné záplaty a aktualizácie, či už spíte alebo nie
Tento tutoriál vysvetľuje, ako nastaviť server DNS pomocou Bind9 na Debiane alebo Ubuntu. V celom článku podľa toho nahraďte názov vašej-domény.com. Pri th
V tomto článku uvidíme, ako skompilovať a nainštalovať hlavnú líniu Nginx z oficiálnych zdrojov Nginx pomocou modulu PageSpeed, ktorý vám umožňuje t
Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval
Používate iný systém? Gitea je alternatívny open source systém na správu verzií s vlastným hosťovaním, ktorý používa Git. Gitea je napísaná v Golangu a je
Úvod Lynis je bezplatný nástroj na auditovanie systému s otvoreným zdrojovým kódom, ktorý používajú mnohí správcovia systému na overenie integrity a posilnenie svojich systémov. ja
Používate iný systém? Thelia je open source nástroj na vytváranie webových stránok elektronického podnikania a správu online obsahu napísaného v PHP. Zdrojový kód Thelia i
Čo budete potrebovať Vultr VPS s aspoň 1 GB RAM. Prístup SSH (s oprávneniami root/administrátor). Krok 1: Inštalácia BungeeCord Najprv veci
Golang je programovací jazyk vyvinutý spoločnosťou Google. Vďaka svojej všestrannosti, jednoduchosti a spoľahlivosti sa Golang stal jedným z najpopulárnejších
Ak ste zabudli svoje root heslo MySQL, môžete ho resetovať podľa krokov v tomto článku. Proces je pomerne jednoduchý a funguje na nich
Sú chvíle, keď potrebujeme zdieľať súbory, ktoré musia byť viditeľné pre klientov Windows. Keďže systémy založené na poistkách fungujú iba na Linuxe, predstavíme sa
V tejto príručke nastavíme herný server Counter Strike: Source na Debiane 7. Tieto príkazy boli testované na Debiane 7, ale mali by tiež fungovať
V tejto príručke sa dozviete, ako nastaviť server Unturned 2.2.5 na Vultr VPS so systémom Debian 8. Poznámka: Toto je upravená verzia Unturned, ktorá
V tomto návode sa naučíte, ako nainštalovať Cachet na Debian 8. Cachet je výkonný open source systém stavových stránok. Inštalácia Tento tutoriál práve pokračuje
Úvod V tomto článku si dobre prejdeme, ako zálohovať viacero databáz MySQL alebo MariaDB, ktoré sedia na rovnakom počítači pomocou vlastného bash skriptu.
Tento článok vás naučí, ako nastaviť chroot väzenie v Debiane. Predpokladám, že používate Debian 7.x. Ak používate Debian 6 alebo 8, môže to fungovať, ale
Using a Different System? Reader Self 3.5 is a simple and flexible, free and open source, self-hosted RSS reader and Google Reader alternative. Reader Sel
Používate iný systém? Backdrop CMS 1.8.0 je jednoduchý a flexibilný, mobilný, bezplatný a open source systém na správu obsahu (CMS), ktorý nám umožňuje
V tomto návode nainštalujeme SteamCMD. SteamCMD je možné použiť na stiahnutie a inštaláciu mnohých herných serverov Steam, ako je Counter-Strike: Global Offensiv
Ako možno viete, úložiská Debianu sa aktualizujú veľmi pomaly. V čase písania tohto článku sú verzie vydania Pythonu 2.7.12 a 3.5.2, ale v úložisku Debian 8
Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.
Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.
Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.
Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.
Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…
Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.
Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.
Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.
V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.
Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac