Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)
Naudojate kitą sistemą? Jei perkate Debian serverį, visada turėtumėte turėti naujausius saugos pataisymus ir naujinimus, nesvarbu, ar miegate, ar ne
Įvadas
„Nginx“ yra atvirojo kodo žiniatinklio serverio programinė įranga, sukurta atsižvelgiant į aukštą lygiagretumą, kuri gali būti naudojama kaip HTTP/HTTPS serveris, atvirkštinis tarpinis serveris, pašto tarpinis serveris, programinės įrangos apkrovos balansavimo priemonė, TLS terminatorius, talpyklos serveris ir dar daugiau!
Tai labai modulinė programinės įrangos dalis. Net kai kurios iš pažiūros „įmontuotos“ programinės įrangos dalys, tokios kaip GZIP arba SSL, iš tikrųjų yra sukurtos kaip moduliai, kuriuos galima įjungti ir išjungti kūrimo metu.
Jame yra pagrindiniai (savieji) moduliai ir bendruomenės sukurti trečiųjų šalių (išoriniai) moduliai . Šiuo metu yra daugiau nei šimtas trečiųjų šalių modulių, kuriuos galime naudoti.
Parašyta C kalba, tai greita ir lengva programinė įranga.
Įdiegti „Nginx“ iš šaltinio kodo yra gana paprasta – atsisiųskite naujausią „Nginx“ šaltinio kodo versiją, sukonfigūruokite, sukurkite ir įdiekite.
Turėsite pasirinkti, ar atsisiųsti pagrindinę, ar stabilią versiją, tačiau jų kūrimas yra tas pats.
Šiame vadove mes sudarysime pagrindinę Nginx versiją Debian 10 (buster). Naudosime visus galimus modulius atvirojo kodo Nginx versijoje.
Kodėl kompiliuoti ir įdiegti „Nginx“ iš šaltinio
Tikriausiai klausiate, kodėl Nginx reikia kompiliuoti iš šaltinio, kai galite naudoti paruoštus paketus. Štai keletas priežasčių, kodėl galbūt norėsite patys kompiliuoti konkrečią programinę įrangą:
Stabili ir pagrindinė versija
„Nginx Open Source“ yra dviejų versijų:
Pagrindiniai moduliai, palyginti su trečiųjų šalių moduliais
„Nginx“ turi dviejų tipų modulius, kuriuos galite naudoti: pagrindinius modulius ir trečiųjų šalių modulius.
Pagrindiniai „Nginx“ kūrėjai kuria pagrindinius modulius ir yra pačios programinės įrangos dalis.
Bendruomenė kuria trečiųjų šalių modulius ir galite juos naudoti norėdami išplėsti funkcijas. Yra daug naudingų trečiųjų šalių modulių.
Statiniai moduliai prieš dinaminius modulius
Statiniai moduliai egzistuoja Nginx nuo pat pirmosios versijos. Dinaminiai moduliai buvo pristatyti su Nginx 1.9.11+ 2016 m. vasario mėn.
Naudojant statinius modulius, ./configure
scenarijus kompiliavimo metu fiksuoja modulių rinkinį, kuris sudaro Nginx dvejetainį failą . Statinių modulių naudojimas --with-foo_bar_module
arba --add-module=PATH
sintaksė.
Norėdami sudaryti pagrindinį (standartinį) modulį kaip dinaminį, pridedame =dynamic
, pavyzdžiui, --with-http_image_filter_module=dynamic
.
Norėdami sudaryti trečiosios šalies modulį kaip dinaminį, naudojame --add-dynamic-module=/path/to/module
sintaksę, o tada įkeliame juos naudodami load_module
direktyvą pasauliniame nginx.conf
failo kontekste .
Reikalavimai statant Nginx iš šaltinio
Palyginti su kai kuria kita UNIX / Linux programine įranga, Nginx yra gana lengvas ir neturi daug priklausomybių nuo bibliotekos. Numatytoji versijos konfigūracija priklauso tik nuo 3 įdiegtų bibliotekų: OpenSSL/LibreSSL/BoringSSL, Zlib ir PCRE.
PASTABA : „ Nginx“ taip pat gali būti sukompiliuotas su „LibreSSL“ ir „BoringSSL“ kriptovaliutų bibliotekomis, o ne su „OpenSSL“.
Prieš tau pradedant
Patikrinkite Debian versiją.
lsb_release -ds # Debian GNU/Linux 10 (buster)
Sukurkite įprastą naudotoją, turintį sudo
prieigą.
adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe
PASTABA : pakeiskite johndoe
savo vartotojo vardu .
Perjungti į naują vartotoją.
su - johndoe
Nustatykite laiko juostą.
sudo dpkg-reconfigure tzdata
Atnaujinkite savo operacinės sistemos programinę įrangą.
sudo apt update && sudo apt upgrade -y
Įdiekite reikiamus paketus.
sudo apt install -y software-properties-common ufw
Sukurkite Nginx iš šaltinio
Nginx yra programa, parašyta C, todėl pirmiausia turėsite įdiegti kompiliatoriaus įrankį. Įdiekite build-essential
, git
ir tree
.
sudo apt install -y build-essential git tree
Atsisiųskite naujausią pagrindinę Nginx šaltinio kodo versiją ir išpakuokite šaltinio kodo archyvą. „Nginx“ šaltinio kodas platinamas kaip suspaustas archyvas, kaip ir dauguma „Unix“ ir „Linux“ programinės įrangos.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Atsisiųskite privalomą „Nginx“ priklausomybių šaltinio kodą ir išskleiskite jį.
# 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
Įdiekite pasirenkamas Nginx priklausomybes.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Išvalykite visus .tar.gz
failus. Mums jų nebereikia.
rm -rf *.tar.gz
Įveskite „Nginx“ šaltinio katalogą.
cd ~/nginx-1.17.2
Norėdami gauti gerą įvertinimą, išvardykite katalogus ir failus, kurie sudaro Nginx šaltinio kodą su tree
.
tree -L 2 .
Nukopijuokite vadovą į puslapį /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
Jei reikia pagalbos, galite pamatyti visą naujausių „Nginx“ kompiliavimo laiko parinkčių sąrašą, vykdydami toliau nurodytus veiksmus.
./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic
Sukonfigūruokite, sukompiliuokite ir įdiekite 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 kompiliavimo eikite į savo namų ( ~
) katalogą.
cd ~
Simbolinė nuoroda /usr/lib/nginx/modules
į /etc/nginx/modules
. Tai standartinė Nginx modulių vieta.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Išspausdinkite Nginx versiją, kompiliatoriaus versiją ir sukonfigūruokite scenarijaus parametrus.
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 . . . # . . . # . . .
Sukurkite „Nginx“ sistemos grupę ir vartotoją.
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
Patikrinkite Nginx sintaksę ir galimas klaidas.
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
Sukurkite Nginx systemd vieneto failą.
sudo vim /etc/systemd/system/nginx.service
Užpildykite /etc/systemd/system/nginx.service
failą tokiu turiniu.
[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
Įgalinkite „Nginx“, kad paleistumėte įkrovą, ir nedelsdami paleiskite „Nginx“.
sudo systemctl enable nginx.service sudo systemctl start nginx.service
Patikrinkite, ar „Nginx“ automatiškai pradės veikti po perkrovimo.
sudo systemctl is-enabled nginx.service # enabled
Patikrinkite būseną.
sudo systemctl status nginx.service
PASTABA : galite patikrinti, ar „Nginx“ veikia, interneto naršyklėje apsilankę savo svetainės domenu arba IP adresu. Pamatysite „Nginx“ pasveikinimo puslapį. Tai rodo, kad „Nginx“ veikia ir veikia jūsų VPS.
Sukurkite UFW Nginx programos profilį.
sudo vim /etc/ufw/applications.d/nginx
Nukopijuokite / įklijuokite toliau pateiktą turinį į /etc/ufw/applications.d/nginx
failą.
[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
Patvirtinkite, kad UFW programų profiliai sukurti ir atpažinti.
sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH
Pagal numatytuosius nustatymus „Nginx“ sukuria atsargines .default
failų kopijas /etc/nginx
. Pašalinti .default
failus iš /etc/nginx
katalogo.
sudo rm /etc/nginx/*.default
Įdėkite sintaksės paryškinimą Nginx konfigūracija Vim redaktoriui į ~/.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/
PASTABA : atlikdami aukščiau aprašytą veiksmą, redaguodami Nginx konfigūracijos failus Vim redaktoriuje gausite gražų sintaksės paryškinimą.
Sukurti conf.d
, snippets
, sites-available
ir sites-enabled
katalogų /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Pakeiskite Nginx žurnalo failų leidimus ir grupės nuosavybės teises.
sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Sukurkite „Nginx“ žurnalo pasukimo konfigūraciją.
sudo vim /etc/logrotate.d/nginx
Užpildykite failą tokiu tekstu, tada išsaugokite ir išeikite.
/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 }
Pašalinkite visus atsisiųstus failus iš namų katalogo.
cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Santrauka
Viskas. Dabar turite įdiegtą naujausią „Nginx“ versiją. Jis statiškai kompiliuojamas su kai kuriomis svarbiomis bibliotekomis, tokiomis kaip OpenSSL. Dažnai sistemos tiekiama OpenSSL versija yra pasenusi. Naudodami šį diegimo metodą su naujesne OpenSSL versija, galite pasinaudoti šiuolaikiniais šifrais, CHACHA20_POLY1305
pvz., TLS 1.3, ir protokolais, kurie yra prieinami OpenSSL 1.1.1
. Be to, sudarydami savo dvejetainį failą, galėsite pritaikyti, kokias funkcijas suteiks jūsų Nginx, o tai yra daug lankstesnė nei įdiegus iš anksto sukurtą dvejetainį failą.
Naudojate kitą sistemą? Jei perkate Debian serverį, visada turėtumėte turėti naujausius saugos pataisymus ir naujinimus, nesvarbu, ar miegate, ar ne
Šiame vadove paaiškinama, kaip nustatyti DNS serverį naudojant Bind9 sistemoje Debian arba Ubuntu. Visame straipsnyje atitinkamai pakeiskite savo-domeno-vardas.com. Prie th
Šiame straipsnyje pamatysime, kaip sukompiliuoti ir įdiegti pagrindinę Nginx liniją iš oficialių Nginx šaltinių naudojant PageSpeed modulį, kuris leidžia
Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti
Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina Git. Gitea parašyta golangu ir yra
Įvadas Lynis yra nemokama atvirojo kodo sistemos audito priemonė, kurią naudoja daugelis sistemų administratorių, kad patikrintų vientisumą ir sustiprintų savo sistemas. aš
Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i
Ko jums reikia Vultr VPS su mažiausiai 1 GB RAM. SSH prieiga (su root / administratoriaus teisėmis). 1 veiksmas: „BungeeCord“ diegimas Pirmiausia
Golang yra programavimo kalba, kurią sukūrė Google. Dėl savo universalumo, paprastumo ir patikimumo Golangas tapo vienu populiariausių
Jei pamiršote savo MySQL root slaptažodį, galite jį nustatyti iš naujo atlikdami šiame straipsnyje nurodytus veiksmus. Procesas yra gana paprastas ir veikia su jais
Kartais mums reikia bendrinti failus, kuriuos turi matyti „Windows“ klientai. Kadangi saugikliais pagrįstos sistemos veikia tik „Linux“, prisistatykite
Šiame vadove mes nustatysime Counter Strike: Source žaidimų serverį Debian 7. Šios komandos buvo išbandytos Debian 7, tačiau jos taip pat turėtų veikti.
Šiame vadove sužinosite, kaip įdiegti Cachet Debian 8. Cachet yra galinga atvirojo kodo būsenos puslapių sistema. Diegimas Ši pamoka vyksta
Įvadas Šiame rašte gerai apžvelkite, kaip sukurti kelių MySQL arba MariaDB duomenų bazių, esančių tame pačiame kompiuteryje, atsargines kopijas naudojant pasirinktinį bash scenarijų.
Šis straipsnis išmokys jus, kaip nustatyti chroot kalėjimą Debian'e. Manau, kad naudojate Debian 7.x. Jei naudojate Debian 6 arba 8, tai gali veikti, bu
Naudojate kitą sistemą? „Reader Self 3.5“ yra paprasta ir lanksti, nemokama ir atvirojo kodo, savarankiškai priglobta RSS skaitytuvo ir „Google“ skaitytojo alternatyva. Skaitytojas Sel
Naudojate kitą sistemą? Backdrop CMS 1.8.0 yra paprasta ir lanksti, mobiliesiems pritaikyta nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri leidžia mums
Kaip tikriausiai žinote, Debian saugyklos atnaujinamos labai lėtai. Rašymo metu „Python“ leidimo versijos buvo 2.7.12 ir 3.5.2, tačiau „Debian 8“ saugykloje
„Samba“ yra atvirojo kodo sprendimas, leidžiantis vartotojams greitai ir saugiai nustatyti failus ir spausdinti bendrinamus failus. Šiame straipsnyje aprašysiu, kaip nustatyti „Samba Wit“.
SNI tarpinis serveris gali perduoti tiek gaunamus HTTP, tiek TLS ryšius pagal pagrindinio kompiuterio pavadinimą, kuris yra pradinėje tos TCP seanso užklausoje. Ši savybė
Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.
Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.
Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.
Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.
Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…
Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.
Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.
Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.
Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.
Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį