Hvernig á að setja upp Nginx á AlmaLinux 8

nginx er opinn hugbúnaður, ókeypis HTTP netþjónn. Til viðbótar við getu sína á HTTP netþjóninum getur NGINX einnig virkað sem umboðsþjónn fyrir tölvupóst (IMAP, POP3 og SMTP) og öfugt umboð og álagsjafnvægi fyrir HTTP, TCP og UDP netþjóna. Markmiðið á bak við NGINX var að búa til hraðskreiðasta vefþjóninn sem til er og viðhalda því ágæti er enn aðalmarkmið Nginx verkefnisins. NGINX slær stöðugt út Apache og aðra netþjóna í viðmiðum sem mæla árangur vefþjónsins og er nú vinsælasti notaði vefþjónninn samkvæmt W3Tech.

Í kennslunni muntu læra hvernig á að gera það settu upp Nginx á AlmaLinux 8 með ókeypis TLS/SSL vottorði frá Let's Encrypt.

Forsendur

  • Mælt með stýrikerfi: AlmaLinux 8.
  • Notendareikningur: Notendareikningur með sudo réttindi or rótaraðgangur (su skipun).

Uppfærir stýrikerfi

Uppfærðu þína AlmaLinux stýrikerfi til að tryggja að allir núverandi pakkar séu uppfærðir:

sudo dnf upgrade --refresh

Kennsluefnið mun nota sudo skipun og að því gefnu að þú sért með sudo stöðu.

Til að staðfesta sudo stöðu á reikningnum þínum:

sudo whoami

Dæmi um úttak sem sýnir sudo stöðu:

[joshua@localhost ~]$ sudo whoami
root

Til að setja upp núverandi eða nýjan sudo reikning skaltu fara á kennsluna okkar á Hvernig á að bæta notanda við Sudoers á AlmaLinux.

Til að nota rótarreikningur, notaðu eftirfarandi skipun með rót lykilorðinu til að skrá þig inn.

su

Fáðu


Setjið Nginx

Aðferð 1. Settu upp Nginx frá AlmaLinux AppStream

Fyrsta aðferðin er að setja upp Nginx úr AlmaLinux App straumnum. Þessi útgáfa er eldri en stöðug og örugg. Ef þú þarft að keyra aðal vefþjón eða öfugt umboð er oft mælt með því að setja upp App Stream geymsluna.

Til að setja upp Nginx skaltu keyra eftirfarandi skipun.

sudo dnf install nginx

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Gerð „Y“, ýttu síðan á „SLAÐA LYKILL“ til að halda áfram með uppsetninguna.

Næst skaltu staðfesta útgáfuna og hvort uppsetningin hafi heppnast.

sudo nginx -v

Dæmi úttak:

nginx version: nginx/1.14.1

Athugaðu að framleiðsla þín verður mismunandi eftir því hvaða einingu þú virkjar.

Áður en þú heldur áfram verður þú að hefja Nginx þjónustuna.

sudo systemctl start nginx

Næst skaltu staðfesta stöðuna til að ganga úr skugga um að engar villur séu.

systemctl status nginx

Dæmi úttak ef allt virkar rétt:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Aðferð 2. Settu upp Nginx frá EPEL

Annar valkosturinn er að setja upp Nginx frá EPEL geymslunni. Þetta mun færa þér mun uppfærðari útgáfu af Nginx sem er enn talin stöðug en að setja upp úreltu nýjustu útgáfurnar frá Nginx sjálfu. Ferlið er tiltölulega auðvelt.

Settu fyrst upp EPEL geymsluna:

sudo dnf install epel-release

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Gerð "Y", ýttu síðan á „SLAÐA LYKILL“ til að halda áfram með uppsetninguna.

Nú, með EPEL uppsett, þú þarft að endurstilla Nginx einingarnar.

sudo dnf module reset nginx

Næst skaltu skrá tiltækar einingar sem eru tiltækar með dnf frá öllum þekktum geymslum.

sudo dnf module list nginx

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Eins og hér að ofan geturðu annað hvort skipt yfir í hærri útgáfu af stöðugri eða aðallínu. Athugaðu að stöðuga útgáfan er alltaf í byggingarnúmeri og aðallínan er náttúrulega aðallína.

Til að virkja eina af nýju einingunum frá EPEL, notaðu eftirfarandi í flugstöðinni þinni.

Virkja nýjasta stöðugleikann:

sudo dnf module enable nginx:1.20

Athugasemd fyrir stöðugan Nginx EPEL: Þetta gæti breyst í framtíðinni. Gakktu úr skugga um að skrá einingarnar og ekki bara afrita og líma.

Virkja nýjustu aðallínuna:

sudo dnf module enable nginx:mainline

Settu nú upp Nginx:

sudo dnf install nginx

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Gerð "J," ýttu síðan á „SLAÐA LYKILL“ til að halda áfram með uppsetninguna.

Næst skaltu staðfesta útgáfuna og hvort uppsetningin hafi heppnast.

sudo nginx -v

Dæmi úttak (aðallína):

nginx version: nginx/1.19.10

Athugaðu að framleiðsla þín verður mismunandi eftir því hvaða einingu þú virkjar.

Áður en þú heldur áfram verður þú að hefja Nginx þjónustuna.

sudo systemctl enable nginx --now

Næst skaltu staðfesta stöðuna til að ganga úr skugga um að engar villur séu.

systemctl status nginx

Dæmi úttak ef allt virkar rétt:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Stilla eldveggsreglur

Það bætir ekki eldveggsreglum sjálfkrafa við staðlaða 80 eða 443 tengi þegar Nginx er sett upp. Áður en þú heldur áfram ættirðu að setja eftirfarandi reglur, þetta fer eftir því hvaða höfn þú munt nota, en allir valkostir eru skráðir.

Opna port 80 eða HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

Opnaðu port 443 eða HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Endurhlaða eldvegg til að gera breytingar í gildi

sudo firewall-cmd --reload

Fáðu


Stilla Nginx Server

Þú þarft að hafa IP tölu netþjónsins tilbúinn til uppsetningar. Auðveldasta leiðin til að gera þetta er með eftirfarandi.

Finndu IP tölu netþjóns

Þú þarft að hafa IP tölu netþjónsins undirbúið fyrir uppsetningu. Auðveldasta leiðin til að gera þetta er með eftirfarandi.

curl -4 icanhazip.com

Dæmi úttak:

XXX.XXX.XXX.XXX IP address

Ef skipanirnar virka ekki, þá ertu ekki með krullupakkann uppsettan. Keyra eftirfarandi skipun:

sudo dnf install curl -y

Þegar þú hefur fengið IP tölu netþjónsins þíns skaltu opna uppáhalds netvafrann þinn og athuga að sjálfgefna áfangasíðan virki.

http://your_server_ip

Þú ættir að fá eftirfarandi síðu í netvafranum þínum. Ef þú færð ekki þessa síðu heldur Nginx villusíðu í staðinn, þá er það í lagi þar sem EPEL útgáfan getur verið mismunandi. Þú ert að prófa til að ganga úr skugga um að þú getir náð í Nginx netþjóninn.

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á AlmaLinux 8

Settu upp heimildaskrá vefsvæðis

Í kennslunni muntu setja upp lén sem heitir example.com, en þú ættir skiptu þessu út fyrir lénið þitt. Kennslan mun búa til vefskrárnar og stilla vefskrárnar í móðurskránni / var / www /.

Fyrst skaltu búa til möppuna, fyrir example.com, sem hér segir, með því að nota “-p” flagga til að búa til nauðsynlegar móðurskrár:

sudo mkdir -p /var/www/your_domain/html

Í öðru lagi þarftu að úthluta eiganda möppunnar.

sudo chown -R $USER:$USER /var/www/your_domain/html

Í þriðja lagi, úthlutaðu heimildum möppunnar, þannig að eigandinn les, skrifar og keyrir skrárnar á meðan hann veitir aðeins les- og framkvæmdaheimildir til hópa og annarra. Þú getur sett inn eftirfarandi skipun:

sudo chmod -R 755 /var/www/your_domain

Einnig er hægt að nota / usr / share / nginx / html skrá í staðinn, en / Var / www Mælt er með möppuaðferð fyrir nýja notendur.

Settu upp Test HTML síðu

Í fjórða lagi, búðu til prófunarsíðu sem þú munt nota til að staðfesta að Nginx netþjónninn þinn sé starfhæfur.

nano /var/www/your_domain/html/index.html

Inni í nano ritlinum og ný skrá sem þú hefur búið til. Skráðu Eftirfarandi.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Vistaðu skrána (CTRL+O), farðu síðan út (CTRL+X).

Búðu til Nginx netþjónablokk

Sjálfgefið er að Nginx netþjónablokkin, svipað og Apache sýndargestgjafi, er meðhöndluð í /etc/nginx/conf.d Skrá. Hins vegar er Nginx uppsetningin mismunandi frá mismunandi útgáfum og dreifingum sem nota annað hvort conf.d or síður-tiltækar/síður-virkar sjálfgefið. Fyrir kennsluna verða möppur síðunnar notaðar til að halda staðal.

Fyrst skaltu búa til möppurnar sem þarf fyrir síður-fáanlegar og vefsvæði virkt. Nginx notendur myndu líka kannast við þessa uppsetningu.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Næst skaltu opna nginx.conf skrána þína og fjarlægja eða skrifa athugasemd við „innihalda /etc/nginx/default.d/*.conf;“ og beint undir það bæta við “/etc/nginx/sites-enabled/*.conf;”.

Aðeins dæmi:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

###EDIT HERE###
#  include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Eins og að ofan, a „#“ athugasemd var bætt við fela í sér conf.d línu, og innihalda vefsvæði virkt var bætt við.

Vistaðu skrána (CTRL+O) og fara út (CTRL+X).

Næst skaltu búa til stillingarskrá fyrir netþjónablokk. Nafnið your_domain.conf verður notað fyrir kennsluna, en þetta getur verið nefnt hvað sem þú vilt.

sudo nano /etc/nginx/sites-available/your_domain.conf

Þú getur límt eftirfarandi dæmi kóða inn í blokkina. Þetta er bara an Aðeins HTTP-dæmi fyrir grunnpróf.

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;

  index index.html index.htm;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

Dæmið sýnir netþjóninn þinn er að hlusta eftir tveimur netþjónsnöfnum, „yitt_lén“ á höfn 80.

Þú þarft að breyta rótarskránni í nafn/staðsetningu rótarskrárinnar sem þú býrð til.

Virkjað Nginx Server Block

Þú verður að tengja stillingarskrárnar frá síðum sem eru tiltækar við síður sem eru virkar í Nginx skránni þinni til að virkja blokkir á Nginx netþjóni. Þetta er hægt að gera með ln -s skipuninni sem hér segir.

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Lokastilling og prófun

Á lokastigi þarftu að opna sjálfgefið þitt nginx.conf skrá.

sudo nano /etc/nginx/nginx.conf

Og afskrifaðu eftirfarandi línu.

server_names_hash_bucket_size 64;

Stærð kjötkássafötu þjónsins er breytt þar sem stundum koma upp vandamál við að bæta við fleiri netþjónum.

Næst skaltu prófa Nginx til að ganga úr skugga um að það virki áður en þú endurræsir rétt.

sudo nginx -t

Úttakið ætti að vera ef engar villur í setningafræðinni:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ef þú hefur eftirfarandi í lagi framleiðsla skaltu endurræsa Nginx netþjóninn til að breytingarnar eigi sér stað.

sudo systemctl restart nginx

Opnaðu nú netvafrann þinn og sláðu inn lén netþjónsins. Þú ættir að sjá netþjónablokkina þína er í beinni.

Öruggt Nginx með Let's Encrypt SSL Free Certificate

Helst myndirðu vilja keyra Nginx þinn á HTTPS með SSL vottorði. Besta leiðin til að gera þetta er að nota Við skulum dulkóða, ókeypis, sjálfvirkt og opið vottunaryfirvald rekið af Internet Security Research Group (ISRG) sem ekki er rekin í hagnaðarskyni.

Fyrst skaltu setja upp EPEL geymsla og mod_ssl pakki fyrir betur uppfærða pakka og öryggi.

sudo dnf install epel-release mod_ssl -y

Settu næst upp certbot pakki eins og hér segir:

sudo dnf install python3-certbot-nginx -y

Þegar það hefur verið sett upp skaltu keyra eftirfarandi skipun til að hefja gerð vottorðsins þíns:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Þetta er tilvalin uppsetning sem inniheldur þvingaða HTTPS 301 tilvísanir, Strict-Transport-Security haus og OCSP heftingu. Gakktu úr skugga um að aðlaga tölvupóstinn og lénið að þínum þörfum.

Nú verður vefslóðin þín HTTPS://www.example.com Í stað þess að HTTP://www.example.com.

Athugið, ef þú notar gamla HTTP vefslóð, mun það sjálfkrafa vísa til HTTPS.

Valfrjálst geturðu stillt cron starf til að endurnýja vottorðin sjálfkrafa. Certbot býður upp á handrit sem gerir þetta sjálfkrafa, og þú getur fyrst prófað til að ganga úr skugga um að allt virki með því að framkvæma þurrkeyrslu.

sudo certbot renew --dry-run

Ef allt virkar skaltu opna crontab gluggann þinn með því að nota eftirfarandi flugstöðvaskipun.

sudo crontab -e

Næst skaltu tilgreina tímann þegar það ætti að endurnýja sjálfkrafa. Þetta ætti að vera athugað daglega að lágmarki og ef endurnýja þarf vottorðið mun handritið ekki uppfæra vottorðið. Ef þú þarft hjálp við að finna góðan tíma til að stilla skaltu nota crontab.guru ókeypis tól.

00 00 */1 * * /usr/sbin/certbot-auto renew

Vista (CTRL+O) farðu síðan út (CTRL+X), og cronjob verður sjálfkrafa virkt.


Fáðu


Umsjón með Nginx þjónustu

Nú þegar þú hefur Nginx keyrt á netþjóninum þínum með góðum árangri, eru nokkrar grunntónar stjórnunar sem hér segir.

Til að stöðva Nginx vefþjón:

sudo systemctl stop nginx

Til að ræsa Nginx vefþjón:

sudo systemctl start nginx

Til að endurræsa Nginx vefþjóninn:

sudo systemctl restart nginx

Til að endurhlaða Nginx vefþjóninn (Fyrir fleiri minniháttar breytingar sem ekki krefjast endurræsingar):

sudo systemctl reload nginx

Til að slökkva á Nginx við ræsingu miðlara:

sudo systemctl disable nginx

Til að ræsa Nginx við ræsingu miðlara (Sjálfvirkt virkt við uppsetningu):

sudo systemctl enable nginx

Hvernig á að fá aðgang að Nginx netþjónaskrám

Nginx Logs Directory

Sjálfgefið er að allir NGINX aðgangs-/villuskrár, nema þú hafir breytt þeim, eru staðsettir í annálaskránni, sem eftirfarandi skipun getur skoðað.

Farðu fyrst að skráarskránni og skráðu skrárnar:

cd /var/log/nginx && ls -l

Þú ættir að finna eftirfarandi aðgangs- og villuskrár:

Aðgangsskrá:

/var/log/nginx/access.log

Villuskrá:

/var/log/nginx/error.log

Til að skoða logs í rauntíma í flugstöðinni þinni með því að nota sudo tail -f /location/of/log path skipunina.

Dæmi:

sudo tail -f /var/log/nginx/access.log

Annar valkostur er að prenta síðasta X magn af línum. Til dæmis er X skipt út fyrir 30 til að prenta 30 línur með því að bæta við -n 30 fáni.

sudo tail -f /var/log/nginx/access.log -n 30

Þetta eru bara nokkur dæmi um lestur annála og grep getur líka verið gagnlegt.

Hvernig á að stilla Nginx Log Rotate

Nginx setur sjálfkrafa upp snúning annála og stillir það sjálfgefið sem er að snúa daglega. Þú getur breytt þessum stillingum með því að opna skrána eins og sýnt er hér að neðan.

sudo nano /etc/nginx/logrotate.d/nginx

Næst muntu sjá sömu ef ekki svipaða skráaruppbyggingu. Þú getur breytt innihaldinu hér. Aðallega er hægt að breyta því hversu mörgum annálum á að halda eða fara úr daglega í vikulega. Þetta ætti að vera sjálfgefið nema þú hafir sérstakar þarfir fyrir annálaþörf fyrir hugbúnað eins og fail2ban eftirlit eða álíka.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Helstu stillingarnar sem þú vilt líklega breyta eru eftirfarandi:

  • Daglega - Þessu er hægt að breyta í vikulega, mánaðarlega. Þessu ætti að halda daglega, annars verður erfitt að fara í gegnum annálaskrána.
  • Snúa 14 - Þetta er hversu marga loga á að geyma og fjarlægja, svo að hámarki eru aðeins 14 logs, ef þú vilt aðeins halda 7 daga virði af logs breyttu þessu í 7.

Mælt er með því að snerta ekki neinar aðrar stillingar nema þú vitir hvað þú ert að gera.


Fáðu


Hvernig á að uppfæra Nginx

Nginx verður sjálfgefið uppfært þegar ný útgáfa kemur á geymslurnar. Áður en þú uppfærir er alltaf ráðlagt að taka öryggisafrit af Nginx skránni þinni eða, að minnsta kosti, nginx.conf skrá. Þú getur gert annað hvort með eftirfarandi skipun.

Taktu öryggisafrit af nginx.conf (mjög mælt með):

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Taktu öryggisafrit af allri Nginx möppunni þinni ef þú vilt:

sudo cp /etc/nginx/ /etc/nginx-bkup

Næst skaltu keyra venjulegu uppfærsluskipunina.

sudo dnf upgrade --refresh

Ef uppfærsla er tiltæk skaltu keyra uppfærsluna.

Þú gætir verið beðinn um þetta meðan á uppfærslu eða uppsetningu stendur, en það er frekar nauðsynlegt að gera þetta handvirkt fyrirfram. Fyrir stórar Nginx stillingar margra vefsvæða væri enn hagstæðara að taka öryggisafrit af einhverju eins og Github eða Gitlab.

Hvernig á að fjarlægja (fjarlægja) Nginx

Til að fjarlægja Nginx ef þú notar það ekki lengur er hægt að gera þetta með eftirfarandi skipun:

sudo dnf autoremove nginx

Þessi skipun mun einnig fjarlægja allar ónotaðar ósjálfstæði sem fylgdu uppsetningunni.

Mundu að ef þú setur upp Nginx með EPEL og vilt endurstilla það til að setja upp upprunalegu útgáfuna aftur skaltu nota eftirfarandi skipun eins og áður sagði.

sudo dnf modules reset nginx

Fáðu


Athugasemdir og niðurstaða

Í kennslunni hefurðu lært að setja upp og setja upp grunn Nginx stillingar á léninu þínu á AlmaLinux 8 og búa til ókeypis SSL vottorð með Let's Encrypt. Á heildina litið er Nginx mest notaði og vinsælasti vefforritahugbúnaðurinn núna, þar sem hver mánuður og ár fer fram úr því að taka meiri markaðshlutdeild frá Apache.

Sumir nýir keppinautar eru farnir að skjóta upp kollinum, eins og Openlitespeed, en í ljósi þessara annarra vefforrita, í augnablikinu, einbeittu þér að ákveðnum hlutum eins og WordPress. Nginx mun verða vefforritið sem þú vilt nota í nokkurn tíma.

Leyfi a Athugasemd