Ki jan yo enstale Nginx sou Fedora 35

NGINX se yon sous louvri, lojisyèl sèvè HTTP gratis. Anplis kapasite sèvè HTTP li yo, NGINX ka fonksyone tou kòm yon sèvè prokurasyon pou imel (IMAP, POP3, ak SMTP) ak yon prokurasyon ranvèse ak balans chaj pou HTTP, TCP, ak UDP sèvè.

Objektif la dèyè NGINX se te kreye sèvè entènèt ki pi rapid alantou, epi kenbe ekselans sa a se toujou yon objektif santral nan pwojè Nginx la. NGINX toujou bat Apache ak lòt serveurs nan referans ki mezire pèfòmans sèvè entènèt epi kounye a se sèvè entènèt ki pi popilè itilize dapre W3Tech.

Nan leson patikilye a, ou pral aprann kouman enstale ak konfigirasyon Nginx sou Fedora 35 ak yon sètifika TLS/SSL gratis ki soti nan Let's Encrypt.

Kondisyon

  • OS rekòmande: Fedora Linux 35
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.

Mizajou sistèm operasyon

Mete ajou ou Feutr sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo dnf upgrade --refresh -y

Tutorial la pral sèvi ak la sudo kòmand ak sipoze ou gen estati sudo.

Pou verifye estati sudo sou kont ou:

sudo whoami

Egzanp pwodiksyon ki montre estati sudo:

[joshua@fedora ~]$ sudo whoami
root

Pou mete kanpe yon kont sudo ki deja egziste oswa nouvo, vizite leson patikilye nou an sou Ajoute yon itilizatè nan Sudoers sou Fedora.

Pou itilize kont rasin, sèvi ak lòd sa a ak modpas rasin lan pou konekte.

su
reklam

Enstale Nginx Stable oswa Mainline

Enstale Nginx se trè fasil sou distribisyon Fedora yo bay degaje yo sis mwa, ak aktyalizasyon konstan li yo nan pakè pandan tan li vle di Nginx se, pou pati ki pi, toujou ajou.

Etandone ke Fedora abitye gen pakè ki pi mete ajou, premye pèmèt repozitwa prensipal la, ki Nginx rekòmande pou itilize.

sudo dnf module enable nginx:mainline

Egzanp pwodiksyon:

Ki jan yo enstale Nginx sou Fedora 35

Tape Y, Lè sa a, peze la ANTRE KLE kontinye ak enstalasyon an.

Apre sa, louvri tèminal ou a, epi egzekite lòd sa a pou kòmanse pwosesis enstalasyon an.

sudo dnf install nginx

Egzanp pwodiksyon:

Ki jan yo enstale Nginx sou Fedora 35

Tape Y, Lè sa a, peze la ANTRE KLE kontinye ak enstalasyon an.

Yon fwa enstale, konfime enstalasyon an pa tcheke vèsyon an Nginx bati.

nginx -v

Egzanp pwodiksyon (itilize egzanp liy prensipal):

nginx version: nginx/1.21.3

Pa default, sèvis Nginx la pa aktive oswa aktif yon fwa enstale. Pou pèmèt Nginx, sèvi ak lòd sa a.

sudo systemctl enable nginx --now

Koulye a, tcheke estati sèvis la pou konfime Nginx ap kouri san okenn erè.

systemctl status nginx

Egzanp pwodiksyon:

Ki jan yo enstale Nginx sou Fedora 35

Kòm pi wo a, estati a ta dwe aktif (kouri). Nan pwen sa a, ou te enstale aplikasyon an Nginx.

Konfigirasyon Règ firewall

Pa default, enstalasyon an pa otomatikman ajoute règ firewall nan estanda a pò 80 oswa 443 pò lè w ap enstale Nginx. Anvan ou kontinye, ou ta dwe mete règ sa yo, sa a pral depann de ki pò ou pral itilize, men tout opsyon yo ki nan lis.

Louvri pò 80 oswa HTTP:

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

Louvri pò 443 oswa HTTPS:

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

Rechaje firewall pou fè chanjman an vigè

sudo firewall-cmd --reload
reklam

Configured Nginx

Ou pral bezwen gen adrès IP sèvè a pare pou mete kanpe. Fason ki pi fasil pou fè sa se ak sa ki annapre yo.

Jwenn adrès IP sèvè

Ou pral bezwen gen adrès IP sèvè a prepare pou mete kanpe. Fason ki pi fasil pou fè sa se ak sa ki annapre yo.

curl -4 icanhazip.com

Egzanp pwodiksyon:

XXX.XXX.XXX.XXX IP address

Si kòmandman yo pa travay, ou pa gen pake boukl la enstale plis pase chans. Kouri lòd sa a:

sudo dnf install curl -y

Yon fwa ou gen adrès IP sèvè ou a, louvri navigatè entènèt ou pi renmen, epi tcheke paj aterisaj default la ap travay.

http://your_server_ip

Ou ta dwe jwenn paj sa a nan navigatè entènèt ou a.

Egzanp:

Ki jan yo enstale Nginx sou Fedora 35

Mete kanpe Anyè Sous Sit

Nan leson patikilye a, ou pral mete kanpe yon domèn rele example.com, men ou ta dwe ranplase sa a ak non domèn ou. Leson patikilye a pral kreye repèrtwar entènèt yo ak konfigirasyon fichye sit yo nan anyè paran an / var / www /.

Premyèman, kreye anyè a, pou example.com, jan sa a, lè l sèvi avèk la "-p" flag pou fè nenpòt ki anyè paran ki nesesè yo:

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

Dezyèmman, w ap bezwen bay pwopriyetè anyè a.

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

Twazyèmman, bay otorizasyon anyè a, kidonk pwopriyetè a li, ekri, ak egzekite dosye yo pandan y ap bay gwoup ak lòt moun otorizasyon sèlman pou li ak egzekite. Ou ka antre lòd sa a:

sudo chmod -R 755 /var/www/your_domain

Altènativman, ou ka itilize a / usr / share / nginx / html anyè olye de sa, men an / var / www metòd anyè rekòmande pou nouvo itilizatè yo.

Mete kanpe paj HTML tès la

Katriyèmman, kreye yon paj tès ke ou pral itilize pou konfime sèvè Nginx ou a fonksyone.

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

Anndan editè nano ak nouvo dosye, ou te kreye. Antre sa ki annapre yo.

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

Sove dosye a (CTRL+O), Lè sa a, sòti (CTRL+X).

Kreye blòk sèvè Nginx

Pa default, blòk la sèvè Nginx, menm jan ak Apache lame vityèl, trete nan /etc/nginx/conf.d anyè. Sepandan, enstalasyon Nginx varye de diferan vèsyon ak distribisyon ki itilize swa konf. d or sit-disponib/sit-enabled pa defo. Pou leson patikilye a, yo pral itilize anyè sit la pou kenbe yon estanda.

Anvan sa, fè répertoires bezwen pou sit ki disponib ak sit ki pèmèt.

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

Apre sa, louvri fichye nginx.conf ou a epi retire oswa fè kòmantè a "Enkli /etc/nginx/default.d/*.conf;".

sudo nano /etc/nginx/nginx.conf

Lè sa a, dirèkteman anba li ajoute enkli ladan li "/etc/nginx/sites-enabled/*.conf;".

Egzanp sèlman:

# 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;
}

Kòm pi wo a, a "#" kòmantè te ajoute nan enkli konf.d liy, ak enkli sit ki pèmèt te ajoute.

Sove dosye a (CTRL+O) epi sòti (CTRL+X).

Apre sa, kreye dosye konfigirasyon blòk sèvè ou a. Yo pral itilize non your_domain.conf pou leson patikilye a, men yo ka non sa a nenpòt bagay ou prefere.

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

Ou ka kole kòd egzanp sa a nan blòk la. Sa a se jis yon HTTP-sèlman egzanp pou tès debaz yo.

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;
 }
}

Egzanp la montre sèvè w la ap koute de non sèvè, "domèn_ou" sou pò 80.

Ou pral bezwen chanje anyè rasin nan non/kote anyè rasin ou kreye a.

Pèmèt blòk sèvè Nginx

Ou dwe konekte fichye konfigirasyon yo soti nan sit ki disponib ak sit ki pèmèt nan anyè Nginx ou a pou pèmèt blòk sèvè Nginx. Sa a ka fè ak lòd ln -s jan sa a.

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

Konfigirasyon final & kouri tès la

Nan etap final la, w ap bezwen louvri default ou a nginx.conf dosye-a.

sudo nano /etc/nginx/nginx.conf

Epi dekomantè liy sa a.

server_names_hash_bucket_size 64;

Gwosè bokit hash non sèvè a chanje kòm pafwa pwoblèm rive nan ajoute sèvè adisyonèl.

Apre sa, teste Nginx ou a asire w ke li ap travay anvan byen rekòmanse.

sudo nginx -t

Pwodiksyon an ta dwe si pa gen okenn erè nan sentaks la:

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

Si ou gen pwodiksyon ok sa a, rekòmanse sèvè Nginx pou chanjman yo fèt.

sudo systemctl restart nginx

Koulye a, louvri navigatè entènèt ou a epi tape non domèn sèvè a. Ou ta dwe wè blòk sèvè ou a ap viv.

Ki jan yo enstale Nginx sou Fedora 35

Sekirize Nginx ak ann ankripte Sètifika SSL gratis

Idealman, ou ta vle kouri Nginx ou sou HTTPS lè l sèvi avèk yon sètifika SSL. Pi bon fason pou fè sa se sèvi ak Ann ankripte, yon otorite sètifika gratis, otomatik epi ouvè dirije pa la Gwoup rechèch sekirite entènèt san bi likratif (ISRG).

enstale nan pake certbot jan sa a:

sudo dnf install python3-certbot-nginx -y

Yon fwa enstale, kouri lòd sa a pou kòmanse kreyasyon sètifika ou a:

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

Sa a se konfigirasyon ideyal la ki gen ladan fòs HTTPS 301 redireksyon, Strict-Transport-Security header, ak OCSP Stapling. Jis asire w ke ou ajiste imel la ak non domèn nan kondisyon ou yo.

Koulye a, URL ou a pral HTTPS://www.example.com olye pou yo HTTP://www.example.com.

Remake byen, si ou itilize ansyen an URL HTTP, li pral otomatikman redireksyon nan T.

Opsyonèlman, ou ka mete yon travay cron pou renouvle sètifika yo otomatikman. Certbot ofri yon script ki fè sa otomatikman, epi ou ka premye teste asire w ke tout bagay ap travay pa fè yon kouri sèk.

sudo certbot renew --dry-run

Si tout bagay ap travay, ouvri fenèt crontab ou a lè w sèvi ak lòd tèminal sa a.

sudo crontab -e

Apre sa, presize lè a lè li ta dwe renouvle otomatikman. Sa a ta dwe tcheke chak jou nan yon minimòm, epi si sètifika a bezwen renouvle, script la pa pral mete ajou sètifika a. Si ou bezwen èd pou jwenn yon bon moman pou mete, sèvi ak la crontab.guru zouti gratis.

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

Save (CTRL+O) Lè sa a, sòti (CTRL+X), epi cronjob la pral otomatikman aktive.

reklam

Jere sèvis Nginx

Kounye a ke ou gen Nginx kouri sou sèvè ou avèk siksè, kèk nòt jesyon yo jan sa a.

Pou sispann sèvè wèb Nginx:

sudo systemctl stop nginx

Pou kòmanse sèvè entènèt Nginx:

sudo systemctl start nginx

Pou rekòmanse sèvè wèb Nginx la:

sudo systemctl restart nginx

Pou rechaje sèvè wèb Nginx la (Pou plis ti chanjman ki pa egzije yon rekòmanse):

sudo systemctl reload nginx

Pou enfim Nginx sou bòt sèvè:

sudo systemctl disable nginx

Pou kòmanse Nginx sou bòt sèvè (Otomatikman aktive sou enstalasyon):

sudo systemctl enable nginx

Ki jan yo jwenn aksè nan mòso bwa sèvè Nginx

Anyè Nginx Logs

Pa default, tout mòso bwa aksè / erè NGINX, sof si ou te chanje yo, yo sitiye nan anyè boutèy la, ki kòmandman sa a ka wè.

Premyèman, ale nan anyè mòso bwa yo ak lis fichye yo:

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

Ou ta dwe jwenn aksè ak dosye erè sa yo:

Log Aksè:

/var/log/nginx/access.log

Log Erè:

/var/log/nginx/error.log

Pou wè mòso bwa an tan reyèl nan tèminal ou a lè l sèvi avèk kòmandman sudo tail -f /location/of/log chemen an.

Egzanp:

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

Yon lòt opsyon se enprime dènye X kantite liy yo. Pa egzanp, X ranplase ak 30 pou enprime 30 liy lè w ajoute a -n 30 drapo.

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

Sa yo se jis kèk egzanp lekti mòso bwa, ak grep ka itil tou.

Ki jan yo konfigirasyon Nginx Log Thorne

Nginx otomatikman enstale wotasyon boutèy demi lit ak konfigirasyon li nan default ki se vire chak jou. Ou ka chanje paramèt sa yo lè w jwenn aksè nan fichye a jan yo montre anba a.

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

Apre sa, ou pral wè menm estrikti dosye a si se pa menm jan an. Ou ka modifye sa ki isit la. Sitou ou ka chanje konbyen mòso bwa yo kenbe oswa ale soti nan chak jou a chak semèn. Sa a ta dwe rete sou default sof si ou gen bezwen espesifik log pou lojisyèl tankou siveyans fail2ban oswa menm jan an.

/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
}

Paramèt prensipal yo ou pral pwobableman vle chanje se sa ki annapre yo:

  • Chak jou - Sa a ka chanje an chak semèn, chak mwa. Sa a ta dwe kenbe chak jou, oswa sinon ale nan dosye a boutèy demi lit ap difisil.
  • Vire 14 - Sa a se konbyen mòso bwa yo kenbe epi retire, kidonk nan max gen sèlman 14 mòso bwa, si ou sèlman vle kenbe 7 jou vo nan mòso bwa chanje sa a nan 7.

Li rekòmande pa manyen okenn lòt paramèt sof si w konnen sa w ap fè.

reklam

Ki jan yo mete ajou Nginx

Nginx pral mete ajou pa default lè yon nouvo vèsyon frape depo yo. Anvan amelyore, li toujou konseye pou fè bak anyè Nginx ou oswa, omwen, nginx.conf dosye. Ou ka fè swa ak lòd sa a.

Back up nginx.conf (Trè Rekòmande):

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

Fè bak tout katab Nginx ou a si ou prefere:

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

Apre sa, kouri lòd aktyalizasyon estanda a.

sudo dnf upgrade --refresh

Si yon ajou disponib, kouri ajou a.

Ou ka mande sa pandan yon ajou oswa enstalasyon, men manyèlman fè sa davans trè esansyèl. Pou konfigirasyon gwo Nginx nan plizyè sit, fè bak nan yon bagay tankou Github oswa Gitlab ta menm pi benefik.

Ki jan yo retire (désinstaller) Nginx

Pou retire Nginx si ou pa sèvi ak li ankò, sa ka fè lè l sèvi avèk lòd sa a:

sudo dnf autoremove nginx

Kòmand sa a pral tou retire nenpòt depandans ki pa itilize ki te vini ak enstalasyon an.

Pou Reyajiste modil la nginx soti nan liy prensipal tounen nan default, sèvi ak lòd sa a.

sudo dnf modules reset nginx
reklam

Kòmantè ak konklizyon

Nan leson patikilye a, ou te aprann enstale ak mete konfigirasyon debaz Nginx sou domèn ou a sou Fedora 35 Workstation oswa sèvè, ansanm ak kreye yon sètifika SSL gratis lè l sèvi avèk Let's Encrypt. An jeneral, Nginx se lojisyèl aplikasyon entènèt ki pi itilize ak popilè kounye a, ak chak mwa ak ane depase pran plis pati nan mache nan Apache.

Gen kèk nouvo konkiran yo kòmanse parèt, tankou Openlitespeed men bay lòt aplikasyon entènèt sa yo, pou kounye a, konsantre sou bagay espesifik tankou WordPress. Nginx pral aplikasyon pou entènèt pou kèk tan.

Ban-m pran abònman
Notifye nan
0 kòmantè
Aliye komantè
Wè tout kòmantè
0
Ta renmen panse ou, tanpri fè kòmantè.x