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 samagagamit ang mga site
sapinagana 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.