Otu esi etinye Nginx na Fedora 35

NGINX bụ ihe mepere emepe, ngwa nkesa HTTP efu. Na mgbakwunye na ikike nkesa HTTP ya, NGINX nwekwara ike ịrụ ọrụ dị ka ihe nkesa proxy maka e-mail (IMAP, POP3, na SMTP) na proxy na-atụgharị na ihe nkwụnye ụgwọ maka HTTP, TCP, na UDP sava.

Ebumnuche dị n'azụ NGINX bụ ịmepụta sava weebụ kachasị ọsọ ọsọ gburugburu, na ịnọgide na-enwe ọganihu ahụ ka bụ ihe mgbaru ọsọ bụ isi nke ọrụ Nginx. NGINX na-akụ Apache na sava ndị ọzọ na benchmark na-atụ arụmọrụ sava weebụ ma ugbu a bụ sava weebụ kachasị ewu ewu dị ka W3Tech.

Na nkuzi, ị ga-amụta otú e si Wụnye ma hazie Nginx na Fedora 35 yana asambodo TLS/SSL efu sitere na Ka anyị Encrypt.

Prerequisites

  • OS akwadoro: Linux Fedora 35
  • Akaụntụ onye ọrụ: Akaụntụ onye ọrụ nwere sudo ma ọ bụ ohere mgbọrọgwụ.

Melite Sistemụ Ọrụ

Melite gi Fedora Sistemụ arụmọrụ iji hụ na ngwugwu niile dị adị adịla ugbu a:

sudo dnf upgrade --refresh -y

Nkuzi a ga-eji ya sudo iwu na na-eche na ị nwere ọnọdụ sudo.

Iji nyochaa ọkwa sudo na akaụntụ gị:

sudo whoami

Ihe atụ na-egosi ọkwa sudo:

[joshua@fedora ~]$ sudo whoami
root

Ka ịtọlite ​​akaụntụ sudo dị adị ma ọ bụ ọhụrụ, gaa na nkuzi anyị na Na-agbakwunye onye ọrụ na Sudoers na Fedora.

Iji mgbọrọgwụ akaụntụ, jiri iwu na-esonụ na paswọọdụ mgbọrọgwụ banye.

su

Advertisement


Wụnye Nginx Stable ma ọ bụ Mainline

Ịwụnye Nginx dị mfe na nkesa Fedora nyere mwepụta nke ọnwa isii, yana imelite ngwugwu ya mgbe niile n'oge ya pụtara Nginx bụ, maka ọtụtụ akụkụ, na-adị ọhụrụ mgbe niile.

Nyere na a na-eji Fedora nweta ngwugwu kachasị emelitere, buru ụzọ mee ka ebe nchekwa ihe dị n'elu, nke Nginx kwadoro iji.

sudo dnf module enable nginx:mainline

Ihe atụ mmepụta:

Otu esi etinye Nginx na Fedora 35

Pịnye Y, pịa pịa Tinye igodo ịga n'ihu na nwụnye.

Na-esote, mepee ọnụ ọnụ gị, ma mebie iwu a ka ịmalite usoro nwụnye.

sudo dnf install nginx

Ihe atụ mmepụta:

Otu esi etinye Nginx na Fedora 35

Pịnye Y, pịa pịa Tinye igodo ịga n'ihu na nwụnye.

Ozugbo etinyere ya, kwado nrụnye ahụ site na ịlele ụdị Nginx.

nginx -v

Mmepụta ihe atụ (iji ihe atụ mainline):

nginx version: nginx/1.21.3

Site na ndabara, arụghị ọrụ Nginx ma ọ bụ na-arụ ọrụ ozugbo etinyere ya. Iji mee ka Nginx nwee ike, jiri iwu na-esonụ.

sudo systemctl enable nginx --now

Ugbu a lelee ọkwa ọrụ iji gosi na Nginx na-agba ọsọ na-enweghị njehie ọ bụla.

systemctl status nginx

Ihe atụ mmepụta:

Otu esi etinye Nginx na Fedora 35

Dị ka n'elu, ọnọdụ kwesịrị ịbụ nọ n'ọrụ (na-agba ọsọ). N'ebe a, ị wụnyela ngwa Nginx.

Hazie Iwu Firewall

Site na ndabara, nrụnye anaghị etinye iwu firewall na akpaghị aka na ọkọlọtọ ọdụ ụgbọ mmiri 80 ma ọ bụ 443 ọdụ ụgbọ mmiri mgbe ị na-etinye Nginx. Tupu ị gaa n'ihu, ịkwesịrị ịtọ iwu ndị a, nke a ga-adabere na ọdụ ụgbọ mmiri ị ga-eji, mana edepụtara nhọrọ niile.

Mepee ọdụ ụgbọ mmiri 80 ma ọ bụ HTTP:

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

Mepee ọdụ ụgbọ mmiri 443 ma ọ bụ HTTPS:

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

Bugharịa firewall iji mee mgbanwe ka ọ dị irè

sudo firewall-cmd --reload

Advertisement


Hazie Nginx

Ị ga-enwerịrị adreesị IP nke ihe nkesa ahụ maka ịtọlite. Ụzọ kachasị mfe iji mee nke a bụ ihe ndị a.

Chọta adreesị IP nkesa

Ị ga-achọkwa inwe adreesị IP nke ihe nkesa ahụ maka ịtọlite. Ụzọ kachasị mfe iji mee nke a bụ ihe ndị a.

curl -4 icanhazip.com

Ihe atụ mmepụta:

XXX.XXX.XXX.XXX IP address

Ọ bụrụ na iwu anaghị arụ ọrụ, ị nweghị arụnyere ngwungwu curl karịa ka o yikarịrị. Gbaa iwu a:

sudo dnf install curl -y

Ozugbo ị nwetachara adreesị IP nke ihe nkesa gị, mepee ihe nchọgharị ịntanetị kachasị amasị gị, wee lelee ibe ọdịda ndabara na-arụ ọrụ.

http://your_server_ip

Ị ga-enweta ibe na-esonụ na ihe nchọgharị Ịntanetị gị.

Ihe Nlereanya:

Otu esi etinye Nginx na Fedora 35

Hazie akwụkwọ ndekọ aha saịtị

Na nkuzi, ị ga-edozi ngalaba a na-akpọ example.com, mana ịkwesịrị jiri aha ngalaba gị dochie nke a. Nkuzi a ga-emepụta akwụkwọ ndekọ aha webụ wee hazie faịlụ saịtị na ndekọ ndekọ ndị nne na nna / var / www /.

Mbụ, mepụta ndekọ, maka example.com, dị ka ndị a, na-eji "-p" ọkọlọtọ iji mepụta akwụkwọ ndekọ aha ndị nne na nna ọ bụla dị mkpa:

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

Nke abụọ, ị ga-ekenye onye nwe akwụkwọ ndekọ aha.

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

Nke atọ, kenye ikike ndekọ aha ahụ, onye nwe ya wee gụọ, dee, ma mebie faịlụ ndị ahụ ma na-enye naanị ikike ịgụ na mebie ikike nye otu na ndị ọzọ. Ị nwere ike itinye iwu a:

sudo chmod -R 755 /var/www/your_domain

N'aka ozo, i nwere ike iji ya / usr / kerịta / nginx / HTML ndekọ kama, ma na / var / www akwadoro usoro ndekọ aha maka ndị ọrụ ọhụrụ.

Hazie ibe HTML ule

Nke anọ, mepụta ibe ule nke ị ga-eji gosi na ihe nkesa Nginx gị na-arụ ọrụ.

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

N'ime nano nchịkọta akụkọ na ọhụrụ faịlụ, ị mepụtara. Tinye ihe ndị a.

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

Chekwaa faịlụ (Ctrl+O), wee pụọ (CTRL+X).

Mepụta ngọngọ nkesa Nginx

Site na ndabara, a na-emeso ngọngọ ihe nkesa Nginx, dị ka ndị ọbịa Apache mebere, na nke /etc/nginx/conf.d ndekọ. Agbanyeghị, nrụnye Nginx dị iche na ụdị dị iche iche na nkesa na-eji ma ọ bụ Ekpere or saịtị-dị/ saịtị-nyere na ndabara. Maka nkuzi a, a ga-eji akwụkwọ ndekọ aha saịtị ahụ iji dobe ọkọlọtọ.

Mbụ, mee akwụkwọ ndekọ aha achọrọ maka saịtị-dị na agbanyere saịtị.

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

Ọzọ, mepee faịlụ nginx.conf gị wee wepụ ma ọ bụ kwuo okwu "gụnyere /etc/nginx/default.d/*.conf;".

sudo nano /etc/nginx/nginx.conf

Mgbe ahụ, ozugbo n'okpuru ya tinye gụnyere "/etc/nginx/sites-enabled/*.conf;".

Ọmụmaatụ naanị:

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

Dị ka n'elu, a "#" agbakwunyere ikwu okwu gụnyere conf.d ahịrị, na gụnyere saịtị-nyeere agbakwunyere.

Chekwaa faịlụ (CTRL+O) wee pụọ (CTRL+X).

Na-esote, mepụta faịlụ nhazi ngọngọ ihe nkesa gị. A ga-eji aha your_domain.conf maka nkuzi, mana enwere ike ịkpọ nke a ihe ọ bụla masịrị gị.

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

Ị nwere ike mado koodu atụ na-esonụ n'ime ngọngọ. Nke a bụ naanị otu HTTP-naanị ọmụmaatụ maka isi ule.

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

Ọmụmaatụ gosiri na ihe nkesa gị na-ege aha sava abụọ, "ngalaba gị" na ọdụ ụgbọ mmiri 80.

Ị ga-achọ ịgbanwe mgbọrọgwụ ndekọ aha / ebe nke mgbọrọgwụ ndekọ ị mepụtara.

Agbanyere Nginx Server Block

Ị ga-ejikọta faịlụ nhazi site na saịtị-dị na saịtị-nyere aka na ndekọ Nginx gị iji mee ka ngọngọ Nginx dị. Enwere ike ime nke a site na iwu ln -s dị ka ndị a.

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

Nhazi ikpeazụ & ọsọ nnwale

N'ọkwa ikpeazụ, ị ga-achọ imepe ndabara gị nginx.conf faịlụ.

sudo nano /etc/nginx/nginx.conf

Na uncomment na-esonụ ahịrị.

server_names_hash_bucket_size 64;

A na-agbanwe nha ịwụ hash aha nkesa dịka mgbe ụfọdụ nsogbu na-ebilite site na ịgbakwunye sava ndị ọzọ.

Na-esote, nwalee Nginx gị ka ijide n'aka na ọ na-arụ ọrụ tupu ịmalitegharịa nke ọma.

sudo nginx -t

Nsonaazụ kwesịrị ịbụ ma ọ bụrụ na enweghị mperi na syntax:

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

Ọ bụrụ na ị nwere mmepụta ok na-esonụ, malitegharịa ihe nkesa Nginx maka mgbanwe ndị ahụ.

sudo systemctl restart nginx

Ugbu a mepee ihe nchọgharị ịntanetị gị wee pịnye na ngalaba aha sava. Ị kwesịrị ịhụ ngọngọ nkesa gị dị ndụ.

Otu esi etinye Nginx na Fedora 35

Chekwaa Nginx na ka anyị zoo SSL Asambodo efu

Dị ka o kwesịrị, ị ga-achọ ịgba ọsọ Nginx gị HTTPS na-eji asambodo SSL. Ụzọ kacha mma isi mee nke a bụ iji Ka anyị zoo, ikike asambodo efu, akpaaka na mepere emepe nke ndị Otu nyocha nchekwa ịntanetị anaghị akwụ ụgwọ (ISRG).

wụnye ngwugwu certbot dị ka ndị a:

sudo dnf install python3-certbot-nginx -y

Ozugbo arụnyere, gbanye iwu a ka ịmalite imepụta asambodo gị:

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

Nke a bụ ezigbo ntọala nke gụnyere ike HTTPS 301 redirects, Strict-Transport-Security nkụnye eji isi mee, na OCSP Stapling. Naanị jide n'aka na ịhazigharịa e-mail na ngalaba aha na ihe ị chọrọ.

Ugbu a URL gị ga-abụ HTTPS://www.example.com kama HTTP://www.example.com.

Rịba ama, ọ bụrụ na ị na-eji nke ochie URL HTTP, ọ ga-akpaghị aka redirect gaa na HTTPS.

Nhọrọ, ị nwere ike ịtọ ọrụ cron iji megharịa asambodo na-akpaghị aka. Certbot na-enye edemede nke na-eme nke a na-akpaghị aka, ma ị nwere ike ibu ụzọ nwalee iji jide n'aka na ihe niile na-arụ ọrụ site na ịme ọkụ ọkụ.

sudo certbot renew --dry-run

Ọ bụrụ na ihe niile na-arụ ọrụ, mepee windo crontab gị site na iji iwu njedebe na-esote.

sudo crontab -e

Na-esote, kọwaa oge mgbe ọ ga-emeghari onwe ya. Ekwesịrị ịlele nke a kwa ụbọchị na opekempe, ma ọ bụrụ na achọrọ ka emegharịa asambodo ahụ, edemede ahụ agaghị emelite asambodo ahụ. Ọ bụrụ na ịchọrọ enyemaka na ịchọta ezigbo oge ịtọ, jiri ya crontab.guru ngwá ọrụ efu.

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

Save (CTRL+O) wee pụọ (CTRL+X), na cronjob ga-enyere aka na-akpaghị aka.


Advertisement


Ijikwa ọrụ Nginx

Ugbu a ị nwere Nginx na-agba ọsọ na ihe nkesa gị nke ọma, ụfọdụ igodo njikwa bụ ndị a.

Ka ịkwụsị sava weebụ Nginx:

sudo systemctl stop nginx

Ka ịmalite sava weebụ Nginx:

sudo systemctl start nginx

Ka ịmalitegharịa sava weebụ Nginx:

sudo systemctl restart nginx

Ka ibugharịa sava weebụ Nginx (Maka obere mgbanwe ndị ọzọ anaghị achọ ịmalitegharị):

sudo systemctl reload nginx

Iji gbanyụọ Nginx na buut nkesa:

sudo systemctl disable nginx

Ka ịmalite Nginx na buut nkesa (Agbanyere na akpaghị aka na nwụnye):

sudo systemctl enable nginx

Otu esi enweta ndekọ nke Nginx Server

Nginx ndekọ ndekọ

Site na ndabara, ndebanye aha / njehie NGINX niile, ọ gwụla ma ị gbanweela ha, dị na ndekọ ndekọ aha, nke iwu na-esonụ nwere ike ịlele.

Nke mbụ, gaa na ndekọ ndekọ ma depụta faịlụ:

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

Ị ga-ahụ faịlụ ohere na njehie ndị a:

Ndekọ nnweta:

/var/log/nginx/access.log

Ndekọ mperi:

/var/log/nginx/error.log

Ka ilele ndekọ na ozugbo na ọdụ gị site na iji iwu sudo tail -f /location/of/log path.

Ihe Nlereanya:

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

Nhọrọ ọzọ bụ ibipụta ahịrị X ikpeazụ. Dịka ọmụmaatụ, ejiri 30 dochie X ka ọ bipụta ahịrị 30 site na ịgbakwụnye -n 30 ọkọlọtọ.

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

Ndị a bụ naanị ụfọdụ ọmụmaatụ ndekọ ndekọ, yana grep nwekwara ike inye aka.

Otu esi ahazi Nginx Log Rotate

Nginx na-arụnye ntụgharị log na-akpaghị aka wee hazie ya na ndabara nke bụ ịtụgharị kwa ụbọchị. Ị nwere ike ịgbanwe ntọala ndị a site na ịnweta faịlụ dịka egosiri n'okpuru.

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

Na-esote, ị ga-ahụ otu ma ọ bụrụ na ọ bụghị nhazi faịlụ yiri ya. Ị nwere ike gbanwee ọdịnaya ebe a. Ọtụtụ mgbe ị nwere ike ịgbanwe ndekọ ole ị ga-edobe ma ọ bụ na-aga kwa ụbọchị gaa kwa izu. Ekwesịrị ịhapụ nke a na ndabara ọ gwụla ma ịnwe mkpa ndekọ aha akọwapụtara maka sọftụwia dị ka fail2ban monitoring ma ọ bụ ihe yiri ya.

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

Ntọala bụ isi nke ị ga-achọ ịgbanwe bụ ndị a:

  • Kwa ụbọchị - Enwere ike ịgbanwe nke a ka ọ bụrụ kwa izu, kwa ọnwa. Ekwesịrị idobe nke a kwa ụbọchị, ma ọ bụghị ya, ịgafe faịlụ log ga-esi ike.
  • Tụgharịa 14 - Nke a bụ ole ndekọ ị ga-edebe ma wepụ ya, yabụ na max enwere naanị ndekọ 14, ma ọ bụrụ na ịchọrọ idobe ọnụ ahịa ndekọ ụbọchị 7, gbanwee nke a na 7.

A na-atụ aro ka ị ghara imetụ ntọala ọ bụla aka ma ọ bụrụ na ị maara ihe ị na-eme.


Advertisement


Otu esi emelite Nginx

A ga-emelite Nginx na ndabara mgbe ụdị ọhụrụ rutere ebe nchekwa. Tupu ịkwalite, a na-adụ ọdụ ka ịkwado ndekọ Nginx gị ma ọ bụ, opekempe, nginx.conf faịlụ. Ị nwere ike iji iwu na-esonụ mee nke ọ bụla.

Kwado nginx.conf (A kwadoro nke ukwuu):

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

Kwado nchekwa Nginx gị niile ma ọ bụrụ na ịchọrọ:

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

Na-esote, gbaa iwu mmelite ọkọlọtọ.

sudo dnf upgrade --refresh

Ọ bụrụ nkwalite dị, mee nkwalite ahụ.

Enwere ike ịkpali gị nke a n'oge nkwalite ma ọ bụ nrụnye, mana iji aka mee nke a tupu oge eruo dị ezigbo mkpa. Maka nnukwu nhazi Nginx nke ọtụtụ saịtị, ịkwado ihe dị ka Github ma ọ bụ Gitlab ga-aba uru karị.

Otu esi ewepu (wepu) Nginx

Iji wepu Nginx ma ọ bụrụ na ị naghịzi eji ya, enwere ike ime nke a site na iji iwu a:

sudo dnf autoremove nginx

Iwu a ga-ewepụkwa ndabere ọ bụla na-ejighị ya nke bịara na nrụnye.

Iji tọgharịa modul nginx site na mainline laghachi na ndabara, jiri iwu a.

sudo dnf modules reset nginx

Advertisement


Okwu na mmechi

N'ime nkuzi a, ị mụtala ịwụnye na melite nhazi Nginx dị mkpa na ngalaba gị na Fedora 35 Workstation ma ọ bụ nkesa, yana ịmepụta akwụkwọ SSL efu site na iji Let's Encrypt. N'ozuzu, Nginx bụ ngwa ngwa weebụ kachasị eji na ewu ewu ugbu a, na ọnwa ọ bụla na afọ na-arị elu na-ewere òkè ahịa site na Apache.

Ụfọdụ ndị na-agba ọsọ ọhụrụ na-amalite ịmalite, dị ka Openlitespeed ma nyere ndị a ngwa weebụ ndị ọzọ, maka ugbu a, na-elekwasị anya na ihe ụfọdụ dị ka WordPress. Nginx ga-abụ ngwa na-aga na webụ nwa oge.

Ahapụ a Comment