Jak nastavit bezobslužné upgrady na Debian 9 (Stretch)
Používáte jiný systém? Pokud si zakoupíte server Debian, měli byste mít vždy nejnovější bezpečnostní záplaty a aktualizace, ať už spíte nebo ne
Úvod
Nginx je software webového serveru s otevřeným zdrojovým kódem navržený s ohledem na vysokou souběžnost, který lze použít jako server HTTP/HTTPS, reverzní proxy server, poštovní proxy server, vyrovnávání zatížení softwaru, terminátor TLS, server pro ukládání do mezipaměti a další!
Jedná se o značně modulární kus softwaru. Dokonce i některé zdánlivě „vestavěné“ části softwaru, jako je GZIP nebo SSL, jsou ve skutečnosti vytvořeny jako moduly, které lze povolit a zakázat během doby sestavení.
Má základní (nativní) moduly a moduly třetích stran (externí) vytvořené komunitou. V současné době existuje více než sto modulů třetích stran, které můžeme využít.
Je to rychlý a lehký software napsaný v C.
Instalace Nginx ze zdrojového kódu je poměrně snadná – stáhněte si nejnovější verzi zdrojového kódu Nginx, nakonfigurujte, sestavte a nainstalujte.
Budete si muset vybrat, zda si stáhnete hlavní řadu nebo stabilní verzi, ale sestavení je stejné.
V této příručce zkompilujeme hlavní verzi Nginx na Debianu 10 (buster). Využijeme všechny dostupné moduly v open-source verzi Nginx.
Proč kompilovat a instalovat Nginx ze zdroje
Pravděpodobně se ptáte, proč by se kompilovalo Nginx ze zdroje, když můžete použít připravené balíčky. Zde je několik důvodů, proč si možná budete chtít zkompilovat konkrétní software sami:
Stabilní vs. verze hlavní řady
Nginx Open Source je k dispozici ve dvou verzích:
Základní moduly vs. moduly třetích stran
Nginx má dva typy modulů, které můžete využít: základní moduly a moduly třetích stran.
Vývojáři jádra Nginx vytvářejí základní moduly a jsou součástí samotného softwaru.
Komunita vytváří moduly třetích stran a můžete je použít k rozšíření funkčnosti. Existuje mnoho užitečných modulů třetích stran.
Statické moduly vs. dynamické moduly
Statické moduly existují v Nginx od první verze. Dynamické moduly byly představeny s Nginx 1.9.11+ v únoru 2016.
U statických modulů je sada modulů, které tvoří binární soubor Nginx, fixována v době kompilace ./configure
skriptem. Použití --with-foo_bar_module
nebo --add-module=PATH
syntaxe statických modulů .
Pro sestavení základního (standardního) modulu jako dynamického přidáme =dynamic
například --with-http_image_filter_module=dynamic
.
Ke kompilaci modulu třetí strany jako dynamického použijeme --add-dynamic-module=/path/to/module
syntaxi a poté je načteme pomocí load_module
direktivy v globálním kontextu nginx.conf
souboru.
Požadavky na sestavení Nginx ze zdroje
Ve srovnání s některým jiným UNIX/Linux softwarem je Nginx docela lehký a nemá mnoho závislostí na knihovnách. Výchozí konfigurace sestavení závisí pouze na 3 knihovnách, které se mají nainstalovat: OpenSSL/LibreSSL/BoringSSL, Zlib a PCRE.
POZNÁMKA : Nginx lze místo OpenSSL zkompilovat také s kryptoknihovnami LibreSSL a BoringSSL.
Než začnete
Zkontrolujte verzi Debianu.
lsb_release -ds # Debian GNU/Linux 10 (buster)
Vytvořte běžného uživatele s sudo
přístupem.
adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe
POZNÁMKA : Nahraďte johndoe
svým uživatelským jménem .
Přepnout na nového uživatele.
su - johndoe
Nastavte časové pásmo.
sudo dpkg-reconfigure tzdata
Aktualizujte software operačního systému.
sudo apt update && sudo apt upgrade -y
Nainstalujte potřebné balíčky.
sudo apt install -y software-properties-common ufw
Sestavte Nginx ze zdroje
Nginx je program napsaný v C, takže nejprve budete muset nainstalovat kompilační nástroj. Nainstalovat build-essential
, git
a tree
.
sudo apt install -y build-essential git tree
Stáhněte si nejnovější hlavní verzi zdrojového kódu Nginx a rozbalte archiv zdrojového kódu. Zdrojový kód Nginx je distribuován jako komprimovaný archiv, stejně jako většina softwaru pro Unix a Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Stáhněte si zdrojový kód povinných závislostí Nginx a extrahujte jej.
# 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
Nainstalujte volitelné 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čistěte všechny .tar.gz
soubory. Už je nepotřebujeme.
rm -rf *.tar.gz
Zadejte zdrojový adresář Nginx.
cd ~/nginx-1.17.2
Pro dobrou míru uveďte adresáře a soubory, které tvoří zdrojový kód Nginx s tree
.
tree -L 2 .
Zkopírujte manuálovou 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
Pro nápovědu si můžete prohlédnout úplný seznam aktuálních možností kompilace Nginx spuštěním následujícího.
./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic
Nakonfigurujte, zkompilujte a nainstalujte 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 kompilaci přejděte do svého domovského ( ~
) adresáře.
cd ~
Symbolický odkaz /usr/lib/nginx/modules
na /etc/nginx/modules
. Toto je standardní místo pro moduly Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Vytiskněte verzi Nginx, verzi kompilátoru a nakonfigurujte parametry 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 . . . # . . . # . . .
Vytvořte systémovou skupinu a uživatele 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
Zkontrolujte syntaxi Nginx a potenciální 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
Vytvořte soubor Nginx systemd unit.
sudo vim /etc/systemd/system/nginx.service
Naplňte /etc/systemd/system/nginx.service
soubor následujícím obsahem.
[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
Povolte spuštění Nginx při spouštění a okamžitě spusťte Nginx.
sudo systemctl enable nginx.service sudo systemctl start nginx.service
Zkontrolujte, zda se Nginx automaticky spustí po restartu.
sudo systemctl is-enabled nginx.service # enabled
Zkontrolujte stav.
sudo systemctl status nginx.service
POZNÁMKA : Můžete ověřit, že Nginx běží, když přejdete na doménu nebo IP adresu vašeho webu ve webovém prohlížeči. Zobrazí se uvítací stránka Nginx. To je indikátor, že Nginx je na vašem VPS spuštěn.
Vytvořte profil aplikace UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Zkopírujte/vložte do /etc/ufw/applications.d/nginx
souboru následující obsah .
[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
Ověřte, že jsou vytvořeny a rozpoznány profily aplikací UFW.
sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH
Nginx ve výchozím nastavení generuje záložní .default
soubory ve formátu /etc/nginx
. Odstraňte .default
soubory z /etc/nginx
adresáře.
sudo rm /etc/nginx/*.default
Umístěte zvýraznění syntaxe konfigurace Nginx pro 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 : Provedením výše uvedeného kroku získáte pěkné zvýraznění syntaxe při úpravě konfiguračních souborů Nginx v editoru Vim.
Vytvářejte adresáře conf.d
, snippets
, sites-available
a sites-enabled
v /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Změňte oprávnění a skupinové vlastnictví souborů protokolu Nginx.
sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Vytvořte konfiguraci rotace protokolu pro Nginx.
sudo vim /etc/logrotate.d/nginx
Vyplňte soubor následujícím textem, poté jej uložte a ukončete.
/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 }
Odstraňte všechny stažené soubory z domovského adresáře.
cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
souhrn
A je to. Nyní máte nainstalovanou nejnovější verzi Nginx. Je kompilován staticky proti některým důležitým knihovnám, jako je OpenSSL. Verze OpenSSL dodávaná systémem je často zastaralá. Při použití této metody instalace s novější verzí OpenSSL můžete využít moderních šifer jako CHACHA20_POLY1305
a protokolů jako TLS 1.3, které jsou dostupné v OpenSSL 1.1.1
. Navíc kompilací vlastního binárního souboru můžete přizpůsobit, jakou funkcionalitu váš Nginx poskytne, což je mnohem flexibilnější než instalace předem sestaveného binárního souboru.
Používáte jiný systém? Pokud si zakoupíte server Debian, měli byste mít vždy nejnovější bezpečnostní záplaty a aktualizace, ať už spíte nebo ne
Tento tutoriál vysvětluje, jak nastavit DNS server pomocí Bind9 na Debianu nebo Ubuntu. V celém článku nahraďte odpovídajícím způsobem název-vaše-domény.com. Při čt
V tomto článku uvidíme, jak zkompilovat a nainstalovat hlavní řadu Nginx z oficiálních zdrojů Nginx pomocí modulu PageSpeed, který vám umožňuje
Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval
Používáte jiný systém? Gitea je alternativní open source systém pro správu verzí s vlastním hostitelem poháněný systémem Git. Gitea je napsána v Golangu a je
Úvod Lynis je bezplatný nástroj pro audit systému s otevřeným zdrojovým kódem, který používá mnoho systémových administrátorů k ověření integrity a posílení svých systémů. já
Používáte jiný systém? Thelia je open source nástroj pro vytváření webových stránek pro e-business a správu online obsahu napsaného v PHP. Zdrojový kód Thelia i
Co budete potřebovat Vultr VPS s alespoň 1 GB RAM. Přístup SSH (s oprávněními root/administrátor). Krok 1: Instalace BungeeCord První věci
Golang je programovací jazyk vyvinutý společností Google. Díky své všestrannosti, jednoduchosti a spolehlivosti se Golang stal jedním z nejoblíbenějších
Pokud jste zapomněli své kořenové heslo MySQL, můžete ho resetovat podle kroků v tomto článku. Proces je poměrně jednoduchý a funguje na nich
Jsou chvíle, kdy potřebujeme sdílet soubory, které musí být viditelné pro klienty Windows. Vzhledem k tomu, že systémy založené na pojistkách fungují pouze na Linuxu, představujeme vás
V této příručce nastavíme herní server Counter Strike: Source na Debianu 7. Tyto příkazy byly testovány na Debianu 7, ale měly by také fungovat
V této příručce se dozvíte, jak nastavit server Unturned 2.2.5 na Vultr VPS se systémem Debian 8. Poznámka: Toto je upravená verze Unturned, která
V tomto tutoriálu se naučíte, jak nainstalovat Cachet na Debian 8. Cachet je výkonný open source systém stavových stránek. Instalace Tento tutoriál právě probíhá
Úvod V tomto zápisu si dobře projděte, jak zálohovat více databází MySQL nebo MariaDB, které sedí na stejném počítači pomocí vlastního bash skriptu.
Tento článek vás naučí, jak nastavit chroot jail v Debianu. Předpokládám, že používáte Debian 7.x. Pokud používáte Debian 6 nebo 8, může to fungovat, bu
Používáte jiný systém? Reader Self 3.5 je jednoduchá a flexibilní, bezplatná a open source, samostatně hostovaná RSS čtečka a alternativa Google Reader. Čtenář Sel
Používáte jiný systém? Backdrop CMS 1.8.0 je jednoduchý a flexibilní, mobilní, bezplatný a open source systém správy obsahu (CMS), který nám umožňuje
V tomto tutoriálu nainstalujeme SteamCMD. SteamCMD lze použít ke stažení a instalaci mnoha herních serverů Steam, jako je Counter-Strike: Global Offensiv
Jak možná víte, repozitáře Debianu se aktualizují velmi pomalu. V době psaní tohoto článku jsou verze vydání Pythonu na 2.7.12 a 3.5.2, ale v úložišti Debian 8
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více