Paano Mag-install ng Nginx sa Ubuntu 20.04 LTS

Buong step-by-step na gabay sa pag-install at pag-set up ng Nginx web server sa isang Ubuntu 20.04 system

Ang Nginx ay isang open-source at sikat na reverse proxy web server na magagamit sa maraming platform. Ang software ay binuo ni Igor Sysoev bilang solusyon sa problemang C10K at unang inilabas noong 2004. Ang problema ng C10K ay ang problema sa paghawak ng sampung libong kliyente nang sabay-sabay na medyo hindi madali noong unang bahagi ng 2000s.

Sa tutorial na ito, tinitingnan namin kung paano i-install at i-set up ang Nginx sa Ubuntu 20.04 LTS.

Mga kinakailangan

Isang system na may naka-install na Ubuntu 20.04 at a sudo gumagamit. Bilang karagdagan, kailangan mong walang ibang web server tulad ng Apache na tumatakbo sa port 80 o 443.

Pag-install ng Nginx

Ang Nginx ay magagamit sa Ubuntu 20.04 repository at apt package manager ay maaaring gamitin upang i-install ito. Kaya, upang mai-install ang Nginx buksan ang terminal gamit ctrl+alt+t at tumakbo:

sudo apt update && sudo apt install nginx

Malapit nang makumpleto ang pag-install at awtomatikong magsisimula ang Nginx daemon sa background. Kaya, upang suriin ang katayuan ng Nginx, tumakbo:

sudo systemctl status nginx

Matapos patakbuhin ang utos sa itaas dapat kang makakuha ng katayuan ng Nginx bilang aktibo(tumatakbo) sa berde tulad ng nakikita sa ibaba.

Pag-configure ng Ubuntu Firewall (UFW)

Bilang default, ang mga papalabas na port na HTTP (80) at HTTPS (443) ay sarado sa Ubuntu 20.04. Bilang karagdagan, ang default na firewall na daemon ufw ay hindi pinagana dahil ang lahat ng mga port ay sarado.

Kaya, upang ma-access ang Nginx server mula sa iba pang mga system, kakailanganin mong paganahin ang ufw at i-set up ito ng tama upang payagan ang trapiko sa port 80 at 443. Bago mo paganahin ufw, alamin na kung nagse-set up ka ng Nginx sa isang malayuang server, i-update muna ang ufw mga patakaran na pinapayagan ssh sa pamamagitan ng pagtakbo:

sudo ufw allow ssh

Ang utos sa itaas ay nagpapahintulot sa ssh access sa remote server, nang hindi pinapayagan ssh mai-lock ka sa malayong server.

Pagkatapos paganahin ssh access, maaari mong paganahin ang ufw firewall daemon sa pamamagitan ng pagpapatakbo:

paganahin ang sudo ufw

Ngayon, kailangan mong baguhin ang mga panuntunan sa firewall upang payagan ang mga HTTP at HTTPS port upang makapaghatid ng trapiko sa web ang Nginx. Upang baguhin ang mga panuntunan, patakbuhin ang:

sudo ufw payagan ang 'Nginx Full'

Puno ng Nginx nagbibigay-daan sa parehong HTTP at HTTPS port para sa papasok at papalabas na trapiko mula sa lahat ng IP address.

Pagkatapos nito, i-verify kung maayos na naidagdag ang mga panuntunan ufw firewall sa pamamagitan ng pagpapatakbo ng command:

katayuan ng sudo ufw

Ilalabas ng command sa itaas ang mga panuntunang idinagdag namin ufw firewall daemon.

Kumokonekta sa Nginx Server

Ngayon na na-install namin ang Nginx at na-configure ufw upang payagan ang papasok na trapiko sa web ng HTTP at HTTPS, dapat mong ma-access ang Nginx server sa pamamagitan ng paggamit ng IP address ng server.

Kung hindi mo alam ang IP address ng server, gamitin ang command sa ibaba para madaling makuha ito.

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Kapag nakuha mo na ang IP address, i-paste ito sa iyong browser at pindutin ang enter.

//iyong-server-ip

Kung na-configure nang tama ang lahat, dapat mong makita ang webpage na ‘Welcome to nginx!’.

Nginx Files at Direktoryo

Ngayon na mayroon kaming Nginx na naka-install at tumatakbo sa iyong server. Tingnan natin ang ilan sa mahahalagang file at direktoryo ng Nginx na kakailanganin mong gamitin para i-configure ang iyong website/web app.

Nilalaman ng web server

Maaari mong i-configure ang anumang lokasyon na gusto mong maging root directory para sa iyong server block. Direktang ang default na HTML ng Nginx ay /var/www/html, dito matatagpuan ang page na 'welcome' na na-access namin kanina.

Ang iba pang mga lokasyon na karaniwang ginagamit bilang root directory para sa mga domain ay kinabibilangan ng:

  • /bahay//
  • /var/www/html/
  • /opt/

Mga File ng Configuration ng Nginx

Ang lahat ng mga file ng pagsasaayos ng Nginx ay matatagpuan sa /etc/nginx direktoryo. Tingnan natin ang ilan sa mahahalagang file na kailangan natin para mag-set up ng pangunahing domain.

  • /etc/nginx/nginx.conf: Ang file na ito ay naglalaman ng lahat ng configuration na kailangan para patakbuhin ang Nginx.
  • /etc/nginx/sites-available/: Ang direktoryo na ito ay mayroong lahat ng configuration ng server block ng mga domain, ngunit kasalukuyang hindi pinagana/na-deploy at sa gayon ay hindi naa-access ng mga kliyente.
  • /etc/nginx/sites-enabled/: Ang direktoryo na ito ay nagtataglay ng mga kasalukuyang aktibo/naka-enable na domain na naa-access ng mga kliyente. Upang paganahin ang isang domain kailangan naming i-link ang domain configuration file mula sa magagamit ang mga site sa pinagana ang mga site direktoryo.
  • /etc/nginx/snippet/: Sa direktoryong ito, maaari kaming mag-imbak ng mga potensyal na magagamit muli na mga segment ng configuration. Makakatipid ito ng maraming oras sa kapaligiran ng produksyon dahil sa katotohanang maaari nitong gawing magagamit muli ang mga segment/block ng configuration.

Mga Log ng Server

Nila-log ng Nginx ang mga kaganapan/aktibidad at iniimbak ang mga ito sa mga log file sa /var/log/nginx direktoryo. Ang Nginx ay nag-log ng mga aktibidad sa mga file na ito:

  • /var/log/nginx/access.log: Nila-log ng file na ito ang mga kliyenteng naka-access sa Nginx server. Kasama sa mga detalye ang IP address ng kliyente, oras at petsa, browser na ginamit upang ma-access ang server at ang OS.
  • /var/log/nginx/error.log: Ang file na ito ay nagla-log ng mga error na nakatagpo ng Nginx server habang tumatakbo.

Kaya, sa seksyong ito, panandalian naming tiningnan ang ilan sa mahahalagang file at direktoryo ng Nginx na sapat na upang makapagsimula.

Pagse-set up ng Server Blocks

Ngayon na mayroon na kaming ilang pangunahing kaalaman tungkol sa mga file at server ng Nginx, handa na kaming mag-set up ng sarili naming server block. Ang mga bloke ng server ay katulad ng mga virtual host ng Apache.

Titingnan namin kung paano gumawa ng block ng server at para ipakitang gagamitin namin example.com bilang domain sa proseso ng paglikha.

💡 Palitan example.com gamit ang iyong domain name.

Bago natin simulan ang pag-configure ng Mga Block ng Server, kailangan nating lumikha ng isang direktoryo upang magsilbing root directory para sa nilalaman ng website. Gumawa tayo /var/www/example.com/html direktoryo para sa paggamit ng domain mkdir utos.

sudo mkdir -p /var/www/example.com/html

Ang -p ang opsyon ay lilikha ng lahat ng mga direktoryo ng magulang na kailangan. Ibig sabihin, lilikha ito example.com isang direktoryo ng magulang sa html kung wala ito.

Baguhin ang pagmamay-ari ng direktoryo gamit ang $USER variable ng kapaligiran:

sudo chown -R $USER:$USER /var/www/example.com/html

Susunod, lumikha ng isang simple index.html file na maa-access kapag binisita mo ang domain na kino-configure. Ito ay para sa paliwanag na layunin lamang.

nano /var/www/example.com/html/index.html

I-paste ang sumusunod na nilalaman sa file na ginawa namin sa server.

  Maligayang pagdating sa example.com! 

Yo! Ang example.com ay naa-access!

Pindutin ctrl+o isulat at i-save ang index.html file at pagkatapos, pindutin ang ctrl+x para lumabas nano editor.

Ngayon sa wakas ay maaari na tayong lumipat sa paggawa ng block ng server, upang maihatid ng Nginx ang index.html kapag pumunta ang ilang user sa example.com. Kaya para gumawa ng server block kailangan naming gumawa ng configuration file na pinangalanan example.com sa magagamit ang mga site direktoryo. Upang gawin ito, ginagamit namin ang nano at tumakbo:

sudo nano /etc/nginx/sites-available/example.com

At pagkatapos, i-type o kopyahin/i-paste ang sumusunod na configuration. Pagkatapos ay pindutin ctrl+o at pumasok para magsulat at mag-save. Katulad nito, pindutin ctrl+x upang isara ang nano editor.

server { makinig 80; makinig [::]:80; server_name example.com www.example.com; ugat /var/www/example-domain.com/html; index index.html; lokasyon / { try_files $uri $uri/ =404; } }

Ang configuration sa itaas ay katulad ng default server block configuration, binago namin ugat pahayag upang tumuro sa aming bagong root directory at binago ang pangalan ng server sa aming domain name. Habang ang lokasyon{} Ang statement ay nagsisilbing error catch statement kung ang mga file ay hindi natagpuan at nagpapakita ng error 404 sa kliyente.

Susunod, maaari naming paganahin ang aming server block upang ang Nginx ay maglingkod example.com mga webpage. Upang paganahin ang aming server block kailangan naming lumikha ng isang symlink ng example.com file mula sa magagamit ang mga site sa pinagana ang mga site direktoryo. Upang gawin ito, patakbuhin ang:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

Isang link ang gagawin sa pinagana ng site direktoryo at ngayon example.com dapat paganahin. Ngayon mayroon kaming dalawang server block na pinagana sa aming Nginx server na tutugon sa kahilingan batay sa makinig ka at server_name mga direktiba na naka-save sa example.com pagsasaayos ng block ng server.

Upang tingnan kung tama ang lahat ng configuration file at walang syntax error, patakbuhin ang:

sudo nginx -t

Ngayon, sa wakas ay i-restart ang Nginx upang ilapat ang mga pagbabago sa pamamagitan ng pagpapatakbo ng sumusunod na command:

sudo systemctl i-restart ang nginx

Si Nginx ay magsisimulang maghatid ng iyong server block ngayon, maaari kang pumunta sa //iyong-domain-name at makita ang iyong webpage nang live.

Tandaan: Para gumana ang seksyon sa itaas, kakailanganin mong i-set up ang sarili mong domain at palitan example.com gamit ang iyong sariling domain name. Gayundin, kailangan mong i-configure ang DNS para sa iyong domain upang ituro ang IP address ng iyong Nginx server.

Upang tapusin, tiningnan namin kung paano i-install ang Nginx, i-configure ufw upang payagan ang malayuang pag-access sa Nginx server, nakakonekta sa Nginx nang malayuan, naging pamilyar sa ilang pangunahing mga file at direktoryo ng Nginx at natutunan kung paano mag-set up ng server block.

Upang malaman at matuto nang higit pa tungkol sa Nginx, maaaring gusto mong makita ang Nginx wiki.