Opsæt Cacti på Debian Jessie
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Introduktion
Nginx er en open source webserversoftware designet med høj samtidighed i tankerne, der kan bruges som en HTTP/HTTPS-server, omvendt proxyserver, mailproxyserver, softwarebelastningsbalancer, TLS-terminator, cachingserver og mere!
Det er et meget modulært stykke software. Selv nogle af de tilsyneladende "indbyggede" dele af softwaren, såsom GZIP eller SSL, er faktisk skabt som moduler, der kan aktiveres og deaktiveres under byggetiden.
Det har kernemoduler (native) og tredjepartsmoduler (eksterne) skabt af fællesskabet. Lige nu er der over hundrede tredjepartsmoduler, som vi kan bruge.
Skrevet i C, det er et hurtigt og let stykke software.
Det er relativt nemt at installere Nginx fra kildekoden - download den nyeste version af Nginx-kildekoden, konfigurer, byg og installer den.
Du skal vælge, om du vil downloade hovedlinjen eller en stabil version, men det er det samme at bygge dem.
I denne guide vil vi kompilere en hovedversion af Nginx på Debian 10 (buster). Vi vil bruge alle tilgængelige moduler i open source-versionen af Nginx.
Hvorfor kompilere og installere Nginx fra kilden
Du spørger sikkert, hvorfor man kompilerer Nginx fra en kilde, når du kan bruge forberedte pakker. Her er nogle grunde til, at du måske vil kompilere specifik software selv:
Stabil vs. mainline version
Nginx Open Source er tilgængelig i to versioner:
Kernemoduler vs. tredjepartsmoduler
Nginx har to typer moduler, som du kan bruge: kernemoduler og tredjepartsmoduler.
De centrale Nginx-udviklere bygger kernemoduler, og de er en del af selve softwaren.
Fællesskabet bygger tredjepartsmoduler, og du kan bruge dem til at udvide funktionaliteten. Der er en masse nyttige tredjepartsmoduler.
Statiske moduler vs. dynamiske moduler
Statiske moduler findes i Nginx fra den allerførste version. Dynamiske moduler blev introduceret med Nginx 1.9.11+ i februar 2016.
Med statiske moduler er et sæt moduler, der udgør en Nginx-binær, fastsat på kompileringstidspunktet af ./configure
scriptet. Statiske moduler brug --with-foo_bar_module
eller --add-module=PATH
syntaks.
For at kompilere et kernemodul (standard) som dynamisk tilføjer vi =dynamic
f.eks --with-http_image_filter_module=dynamic
.
For at kompilere et tredjepartsmodul som dynamisk, bruger vi --add-dynamic-module=/path/to/module
syntaks, og derefter indlæser vi dem ved at bruge load_module
direktivet i nginx.conf
filens globale kontekst .
Krav til at bygge Nginx fra kilden
I sammenligning med noget andet UNIX/Linux-software er Nginx ret let og har ikke mange biblioteksafhængigheder. Standard build-konfigurationen afhænger af kun 3 biblioteker, der skal installeres: OpenSSL/LibreSSL/BoringSSL, Zlib og PCRE.
1.0.2
- 1.1.1
eller LibreSSL- bibliotek eller BoringSSL- bibliotek1.1.3
-1.2.11
4.4
-8.43
BEMÆRK : Nginx kan også kompileres mod LibreSSL og BoringSSL kryptobiblioteker i stedet for OpenSSL.
Før du begynder
Tjek Debian-versionen.
lsb_release -ds # Debian GNU/Linux 10 (buster)
Opret en almindelig bruger med sudo
adgang.
adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe
BEMÆRK : Erstat johndoe
med dit brugernavn .
Skift til en ny bruger.
su - johndoe
Indstil tidszonen.
sudo dpkg-reconfigure tzdata
Opdater dit operativsystems software.
sudo apt update && sudo apt upgrade -y
Installer de nødvendige pakker.
sudo apt install -y software-properties-common ufw
Byg Nginx fra kilden
Nginx er et program skrevet i C, så du skal først installere et compilerværktøj. Installer build-essential
, git
og tree
.
sudo apt install -y build-essential git tree
Download den seneste mainline-version af Nginx-kildekoden og pak kildekodearkivet ud. Nginx-kildekoden distribueres som et komprimeret arkiv, som de fleste Unix- og Linux-software.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Download de obligatoriske Nginx-afhængigheders kildekode og udtræk den.
# 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
Installer valgfri Nginx-afhængigheder.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Ryd op i alle .tar.gz
filer. Vi har ikke brug for dem længere.
rm -rf *.tar.gz
Indtast Nginx-kildebiblioteket.
cd ~/nginx-1.17.2
For godt mål, liste mapper og filer, der komponerer Nginx kildekode med tree
.
tree -L 2 .
Kopier manualsiden til /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
For at få hjælp kan du se en komplet liste over opdaterede Nginx kompileringsmuligheder ved at køre følgende.
./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic
Konfigurer, kompilér og installer 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
Efter kompileringen skal du navigere til din hjemmemappe ( ~
).
cd ~
Symlink /usr/lib/nginx/modules
til /etc/nginx/modules
. Dette er et standardsted for Nginx-moduler.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Udskriv Nginx-versionen, compilerversionen, og konfigurer scriptparametre.
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 . . . # . . . # . . .
Opret en Nginx-systemgruppe og bruger.
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
Tjek Nginx-syntaks og potentielle fejl.
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
Opret en Nginx systemd enhedsfil.
sudo vim /etc/systemd/system/nginx.service
Udfyld /etc/systemd/system/nginx.service
filen med følgende indhold.
[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
Aktiver Nginx til at starte ved opstart og start Nginx med det samme.
sudo systemctl enable nginx.service sudo systemctl start nginx.service
Tjek, om Nginx automatisk starter efter en genstart.
sudo systemctl is-enabled nginx.service # enabled
Tjek status.
sudo systemctl status nginx.service
BEMÆRK : Du kan bekræfte, at Nginx kører ved at gå til dit websteds domæne eller IP-adresse i en webbrowser. Du vil se Nginx-velkomstsiden. Det er en indikator for, at Nginx er oppe og køre på din VPS.
Opret en UFW Nginx-applikationsprofil.
sudo vim /etc/ufw/applications.d/nginx
Kopier/indsæt følgende indhold i /etc/ufw/applications.d/nginx
filen.
[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
Bekræft, at UFW-applikationsprofiler er oprettet og genkendt.
sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH
Nginx genererer som standard sikkerhedskopifiler .default
i /etc/nginx
. Fjern .default
filer fra /etc/nginx
mappen.
sudo rm /etc/nginx/*.default
Placer syntaksfremhævning af Nginx-konfiguration til Vim-editor i ~/.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/
BEMÆRK : Ved at udføre ovenstående trin får du en flot syntaksfremhævning, når du redigerer Nginx-konfigurationsfiler i Vim editor.
Opret conf.d
, snippets
, sites-available
og sites-enabled
mapper i /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Skift tilladelser og gruppeejerskab af Nginx-logfiler.
sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Opret en logrotationskonfiguration for Nginx.
sudo vim /etc/logrotate.d/nginx
Udfyld filen med følgende tekst, gem og afslut.
/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 }
Fjern alle downloadede filer fra hjemmebiblioteket.
cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Resumé
Det er det. Nu har du den nyeste version af Nginx installeret. Det er kompileret statisk mod nogle vigtige biblioteker som OpenSSL. Ofte er den systemleverede version af OpenSSL forældet. Ved at bruge denne metode til at installere med en nyere version af OpenSSL, kan du drage fordel af moderne cifre som CHACHA20_POLY1305
og protokoller som TLS 1.3, der er tilgængelige i OpenSSL 1.1.1
. Desuden, ved at kompilere din egen binære, er du i stand til at skræddersy, hvilken funktionalitet din Nginx vil levere, hvilket er meget mere fleksibelt end at installere en forudbygget binær.
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve
Bruger du et andet system? Hvis du køber en Debian-server, bør du altid have de nyeste sikkerhedsrettelser og opdateringer, uanset om du sover eller ej
Denne vejledning forklarer, hvordan man opsætter en DNS-server ved hjælp af Bind9 på Debian eller Ubuntu. Gennem hele artiklen skal du erstatte dit-domænenavn.com i overensstemmelse hermed. Ved th
I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at
Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere
Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er
Introduktion Lynis er et gratis, open source-systemrevisionsværktøj, der bruges af mange systemadministratorer til at verificere integriteten og hærde deres systemer. jeg
Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i
Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først
Golang er et programmeringssprog udviklet af Google. Takket være sin alsidighed, enkelhed og pålidelighed er Golang blevet en af de mest populære
Hvis du har glemt din MySQL root-adgangskode, kan du nulstille den ved at følge trinene i denne artikel. Processen er ret enkel og fungerer på disse
Der er tidspunkter, hvor vi skal dele filer, der skal kunne ses af Windows-klienter. Da Fuse-baserede systemer kun virker på Linux, må du godt introducere
I denne vejledning vil vi opsætte en Counter Strike: Source-spilserver på Debian 7. Disse kommandoer blev testet på Debian 7, men de burde også virke o
I denne vejledning lærer du, hvordan du opsætter en Unturned 2.2.5-server på en Vultr VPS, der kører Debian 8. Bemærk: Dette er en redigeret version af Unturned, der ikke
I denne vejledning lærer du, hvordan du installerer Cachet på Debian 8. Cachet er et kraftfuldt open source-statussidesystem. Installation Denne vejledning er i gang
Introduktion I denne skrive-up, gå godt igennem, hvordan du sikkerhedskopierer flere MySQL- eller MariaDB-databaser, der sidder på den samme maskine ved hjælp af et brugerdefineret bash-script
Denne artikel vil lære dig, hvordan du opsætter et chroot-fængsel på Debian. Jeg går ud fra, at du bruger Debian 7.x. Hvis du kører Debian 6 eller 8, kan dette virke, men
Bruger du et andet system? Reader Self 3.5 er en enkel og fleksibel, gratis og open source, selvhostet RSS-læser og Google Reader-alternativ. Læser Sel
Bruger du et andet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvenligt, gratis og open source Content Management System (CMS), der giver os mulighed for
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere