Ubuntu හි Nginx ස්ථාපනය සහ වින්‍යාස කිරීම සඳහා සම්පූර්ණ මාර්ගෝපදේශය [ආරම්භක-හිතකාමී]

目次

1. හැඳින්වීම

බොහෝ ජනතාව Ubuntu මත Nginx භාවිතා කිරීමට කැමති වෙති, නමුත් ඔබ එයට නව නම්, කොහෙන් ආරම්භ කළ යුතුදැයි නොදැන සිටිය හැකිය. මෙම ලිපිය ආරම්භකයන් සඳහා පියවරෙන් පියවර මාර්ගෝපදේශයක් සපයයි, ස්ථාපනය සහ වින්‍යාස කිරීමේ සිට Ubuntu පරිසරයක කළමනාකරණය දක්වා සියල්ල ආවරණය කරයි.

Nginx යනු කුමක්ද?

Nginx (උච්චාරණය “engine-x”) යනු ඉහළ කාර්ය සාධන HTTP සේවාදායකය සහ ප්‍රති-ප්‍රොක්සි සේවාදායකය වේ. එය ලාංඡනයේ සැහැල්ලු නිර්මාණය සහ වාසස්ථානය සඳහා ලෝක පුරා පුළුල් ලෙස භාවිතා වේ, විශේෂයෙන් උසස් ගමන් බර හසුරවීමට ඇති හැකියාව.

Ubuntu මත Nginx භාවිතා කිරීමේ ප්‍රතිලාභ

Ubuntu යනු Nginx සමඟ හොඳින් ක්‍රියා කරන ජනප්‍රිය Linux බෙදාහැරීමකි. එහි පැකේජ කළමනාකරණ පද්ධතිය (APT) සමඟ, Nginx ස්ථාපනය කිරීම සහ යාවත්කාලීන කිරීම පහසුය, සහ එය උත්තරීතර ස්ථායීත්වය සහ ආරක්ෂාව ලබා දෙයි.

මෙම ලිපිය කියවීමෙන් ඔබ ඉගෙන ගන්නා දේ:

  • Ubuntu මත Nginx ස්ථාපනය කරන ආකාරය
  • මූලික වින්‍යාස සහ කළමනාකරණ ක්‍රියාවලි
  • කාර්ය සාධන සැකසීම සහ ගැටළු විසඳීම

දැන්, ආරම්භ කරමු.

侍エンジニア塾

2. Ubuntu මත Nginx ස්ථාපනය කරන ආකාරය

Ubuntu මත Nginx ක්‍රියාත්මක කිරීමට, පළමුව එය නිවැරදිව ස්ථාපනය කළ යුතුය. මෙම කොටස ස්ථාපන ක්‍රියාවලිය සඳහා පැහැදිලි, පියවරෙන් පියවර මාර්ගෝපදේශයක් සපයයි.

අවශ්‍ය පැකේජ පරීක්ෂා කිරීම

ස්ථාපනය ආරම්භ කිරීමට පෙර, පහත කමාන්ඩ් ක්‍රියාත්මක කර ඔබේ පද්ධතිය නවීකරණය කර ඇති බව තහවුරු කරන්න:

sudo apt update
sudo apt upgrade

Nginx ස්ථාපනය කිරීම

Nginx ස්ථාපනය කිරීමට, පහත කමාන්ඩ් ඇතුළත් කරන්න:

sudo apt install nginx

මෙම කමාන්ඩ් Ubuntu හි APT ගබඩාවෙන් Nginx ස්වයංක්‍රීයව බාගත කර ස්ථාපනය කරයි.

ස්ථාපනය තහවුරු කිරීම

ස්ථාපනය සාර්ථකදැයි පරීක්ෂා කිරීමට, Nginx තත්ත්වය පරීක්ෂා කිරීම සඳහා පහත කමාන්ඩ් භාවිතා කරන්න:

sudo systemctl status nginx

ප්‍රතිඵලය “active (running)” ලෙස පෙන්වන්නේ නම්, ස්ථාපනය සාර්ථකයි.

ගිනුම් බාධකය (Firewall) වින්‍යාස කිරීම

Ubuntu හි UFW (Uncomplicated Firewall) ඇතුළත් වේ, එය Nginx ගමන් බර ඉඩදීමට ඔබට භාවිතා කළ හැක.

sudo ufw allow 'Nginx Full'
sudo ufw enable

දැන්, Nginx පෝට් 80 (HTTP) සහ 443 (HTTPS) මත ක්‍රියා කිරීමට සකසා ඇත.

3. Ubuntu මත මූලික Nginx වින්‍යාසය

Nginx ස්ථාපනය කිරීම පමණක් ප්‍රමාණවත් නොවේ. ඊළඟට, එය ප්‍රයෝජනවත් ලෙස භාවිතා කිරීමට නිවැරදිව වින්‍යාස කළ යුතුය.

වින්‍යාස ගොනු සහ මූලික ව්‍යුහය

ප්‍රධාන Nginx වින්‍යාස ගොනු මෙහි පිහිටා ඇත:

  • ප්‍රධාන වින්‍යාස ගොනුව: /etc/nginx/nginx.conf
  • අඩවි-විශේෂිත වින්‍යාස ගොනු: /etc/nginx/sites-available/ නාමාවලියේ ඇතුළත

සාමාන්‍යයෙන්, ඔබ sites-available තුළ වර්චුවල් හෝස්ට් වින්‍යාස ගොනුවක් සාදයි, සහ සක්‍රිය කිරීම සඳහා sites-enabled වෙත සංකේත සබැඳියක් (symbolic link) නිර්මාණය කරයි.

වර්චුවල් හෝස්ට් සැකසීම

වර්චුවල් හෝස්ට් ඔබට එකම සේවාදායකයේ බහු ඩොමේන් හෝ ව්‍යාපෘති කළමනාකරණය කිරීමට ඉඩ දෙයි. පහත උදාහරණය example.com සකසයි:

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

පහත අන්තර්ගතය ඇතුළත් කරන්න:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

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

ගොනුව සුරකින්න සහ පහත කමාන්ඩ් භාවිතා කර වින්‍යාසය සක්‍රිය කරන්න:

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

SSL/TLS වින්‍යාස කිරීම

ආරක්ෂිත සන්නිවේදනය සක්‍රිය කිරීමට, SSL/TLS සහතිකයක් සකසන්න. ඔබට නොමිලේ සහතිකයක් ලබා ගැනීමට Let’s Encrypt භාවිතා කළ හැක.

පළමුව, certbot ස්ථාපනය කරන්න:

sudo apt install certbot python3-certbot-nginx

ඊළඟට, SSL සහතිකය ලබා ගෙන ස්වයංක්‍රීයව වින්‍යාස කිරීම සඳහා පහත කමාන්ඩ් ක්‍රියාත්මක කරන්න:

sudo certbot --nginx -d example.com -d www.example.com

කල් ඉකුත් වීම වැළැක්වීමට, ස්වයංක්‍රීය සහතික නවීකරණයද සකසන්න.

4. Nginx කළමනාකරණය සහ පාලනය

Nginx ස්ථාපනය කර වින්‍යාස කිරීමෙන් පසු, එය ආරම්භ කිරීම, නවතා දැමීම, වින්‍යාස නැවත පූරණය කිරීම, සහ ගැටළු විසඳීම කෙසේදැයි ඔබට ඉගෙන ගත යුතුය. මෙම කොටස මූලික කළමනාකරණ කමාන්ඩ් සහ ගැටළු විසඳුම් තාක්ෂණයන් ආවරණය කරයි.

මූලික Nginx කමාන්ඩ්

Ubuntu හි, ඔබට systemctl කමාන්ඩ් භාවිතා කර Nginx කළමනාකරණය කළ හැක. මෙන්න ප්‍රධාන ක්‍රියාකාරකම්:

  1. Nginx ආරම්භ කරන්න
sudo systemctl start nginx
  1. Nginx නවත්වන්න
sudo systemctl stop nginx
  1. Nginx නැවත ආරම්භ කරන්න ප්‍රධාන වින්‍යාස වෙනස්කම් කරන විට අවශ්‍ය වේ.
sudo systemctl restart nginx
  1. Nginx නැවත පූරණය කරන්න නැවත ආරම්භ නොකර වින්‍යාස වෙනස්කම් යෙදවන්න.
sudo systemctl reload nginx
  1. Nginx තත්ත්වය පරීක්ෂා කරන්න Nginx නිසි ලෙස ක්‍රියාත්මක වෙයිදැයි තහවුරු කරන්න.
sudo systemctl status nginx

ස්වයංක්‍රීය ආරම්භය සක්‍රිය කිරීම

පද්ධතිය නැවත ආරම්භ කිරීමෙන් පසු Nginx ස්වයංක්‍රීයව ආරම්භ වන බවට සහතික වීමට:

  1. ස්වයං-ආරම්භය සක්‍රිය කරන්න
sudo systemctl enable nginx
  1. ස්වයං-ආරම්භය අක්‍රිය කරන්න (අවශ්‍ය නම්)
sudo systemctl disable nginx

ගැටළු විසඳීමට ලොග් පරීක්ෂා කිරීම

Nginx අපේක්ෂිත ලෙස ක්‍රියා නොකරන්නේ නම්, හේතුව සොයා ගැනීමට ලොග් පරීක්ෂා කරන්න.

  1. දෝෂ ලොග් බලන්න
sudo tail -f /var/log/nginx/error.log
  1. ප්‍රවේශ ලොග් බලන්න
sudo tail -f /var/log/nginx/access.log

5. Nginx ගිනුම්ගත කිරීම සහ ආරක්ෂාව වැඩිදියුණු කිරීම

Nginx ක්‍රියාත්මක කිරීමේදී ආරක්ෂාව අත්‍යවශ්‍ය වේ. මෙම කොටස Ubuntu හි ගිනුම්ගත (UFW) භාවිතයෙන් පෝට් සකස් කිරීම සහ Nginx ආරක්ෂාව ශක්තිමත් කිරීම පිළිබඳ විස්තර කරයි.

UFW භාවිතයෙන් පෝට් විවෘත කිරීම

UFW (Uncomplicated Firewall) යනු Ubuntu හි පෙරනිමි ලෙස ඇතුළත් ගිනුම්ගත මෙවලමකි. Nginx නිසි ලෙස ක්‍රියා කිරීමට, ඔබට 80 (HTTP) සහ 443 (HTTPS) පෝට් විවෘත කළ යුතුය.

  1. වත්මන් UFW තත්ත්වය පරීක්ෂා කරන්න
sudo ufw status
  1. Nginx ගමන් මග ඉඩ දෙන්න අවශ්‍ය පෝට් විවෘත කිරීමට පහත කමාන්ඩ් ක්‍රියාත්මක කරන්න:
sudo ufw allow 'Nginx Full'
  1. UFW සක්‍රිය කරන්න ගිනුම්ගත අක්‍රිය නම්, එය සක්‍රිය කරන්න:
sudo ufw enable

අතිරේක ආරක්ෂා වැඩිදියුණු කිරීම්

  1. අවශ්‍ය නොවන HTTP ක්‍රම අක්‍රිය කරන්න ආරක්ෂාව වැඩිදියුණු කිරීම සඳහා, Nginx වින්‍යාස ගොනුවට පහත එකතු කර අවශ්‍ය නොවන HTTP ක්‍රම අක්‍රිය කරන්න:
if ($request_method !~ ^(GET|POST|HEAD)$) {
    return 444;
}
  1. නාමාවලිය ලැයිස්තුගත කිරීම අක්‍රිය කරන්න නාමාවලියේ අන්තර්ගතය පොදු ලෙස ප්‍රවේශය නොලැබේ ලෙස පහත එකතු කර නවත්වන්න:
autoindex off;
  1. SSL/TLS ශක්තිමත් කරන්න ඔබේ SSL වින්‍යාසයේ ශක්තිමත් සංකේතනය සැකසීම් භාවිතා කරන්න:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

6. Nginx කාර්ය සාධන සැකසීම සහ ගැටළු විසඳීම

Nginx ඉහළ කාර්ය සාධනය සඳහා ප්‍රසිද්ධයි, නමුත් නිසි සැකසීම එහි කාර්යක්ෂමතාව වැඩිදියුණු කරයි. මෙම කොටස අභ්‍යන්තරීකරණ තාක්ෂණ සහ සාමාන්‍ය ගැටළු විසඳුම් පිළිබඳව කවරා කරයි.

කාර්ය සාධන සැකසීම

1. වැඩකරු ක්‍රියාවලි සැකසීම

Nginx බහු-ක්‍රියාවලි ව්‍යුහයක් අනුගමනය කරයි. සුදුසු වැඩකරු ක්‍රියාවලි ගණන සකස් කිරීම කාර්ය සාධනය වැඩිදියුණු කරයි.

වින්‍යාස ගොනුව /etc/nginx/nginx.conf සංස්කරණය කර පහත සකසන්න:

worker_processes auto;

“auto” සැකසීම CPU මූලිකයන් මත පදනම්ව වැඩකරු ක්‍රියාවලි ගණන ස්වයංක්‍රීයව සකසයි.

2. වැඩකරු සම්බන්ධතා වැඩි කරන්න

පෙරනිමියෙන්, එක් එක් වැඩකරු ක්‍රියාවලියට සීමිත සම්බන්ධතා ගණනක් ඇත. මෙම අගය වැඩි කිරීම උච්ච ගමන් බර හසුරවීමට උදව් කරයි.

වින්‍යාස ගොනුවේ පහත රේඛාව එකතු කරන්න හෝ වෙනස් කරන්න:

worker_connections 1024;

3. HTTP/2 සක්‍රිය කරන්න

HTTP/2 සක්‍රිය කිරීම සන්නිවේදන කාර්යක්ෂමතාව වැඩිදියුණු කරයි සහ වෙබ් අඩවිය ලෝඩ් වේගය වැඩි කරයි.

/etc/nginx/sites-available/example.com ගොනුව සංස්කරණය කර listen නියෝගය පහත පරිදි වෙනස් කරන්න:

listen 443 ssl http2;

ඊළඟට Nginx නැවත පූරණය කරන්න:

sudo systemctl reload nginx

4. අන්තර්ගත සංකෝචනය සක්‍රිය කරන්න

ගොනු යැවීමට පෙර සංකෝචනය කිරීම පටිපාටිය භාවිතය අඩු කරයි සහ ලෝඩ් වේලාව වැඩිදියුණු කරයි.

පහත සැකසීම් එකතු කරන්න හෝ සක්‍රිය කරන්න:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. කෑෂ් සකසීම

කෑෂ් සකසීම ස්ථාවර සම්පත් සඳහා නැවත නැවත ඉල්ලීම් අඩු කරයි.

පහත වින්‍යාසය එකතු කරන්න:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

සාමාන්‍ය ගැටළු විසඳීම

1. උච්ච බර යටතේ මන්දගාමී ඉල්ලීම් හසුරවීම

  • කාරණය: ප්‍රමාණවත් නොවන වැඩකරු ක්‍රියාවලි හෝ සම්බන්ධතා සීමා.
  • විසඳුම: වැඩකරු ක්‍රියාවලි සහ සම්බන්ධතා සකස් කරන්න, හෝ ලෝඩ් බැලන්සර් එකක් භාවිතා කිරීම ගැන සලකා බලන්න.

2. “403 Forbidden” දෝෂය

  • කාරණය: වින්‍යාස ගොනුවේ වැරදි root උපදෙස් හෝ වැරදි ගොනු අවසර.
  • විසඳුම: root උපදෙස් පරීක්ෂා කර ගොනු අවසර යාවත්කාලීන කරන්න:
sudo chmod -R 755 /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html

3. සේවාදායක කාලය ඉක්මවා යාම ගැටළු

  • කාරණය: දිගු ඉල්ලීම් සැකසීමේ කාලය.
  • විසඳුම: කාලය ඉක්මවා යාම සැකසුම් සකස් කරන්න:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

4. Nginx නැවත ආරම්භ කිරීමේ දෝෂ

  • කාරණය: වින්‍යාස ගොනුවේ දෝෂ.
  • විසඳුම: නැවත ආරම්භ කිරීමට පෙර වින්‍යාසය පරීක්ෂා කරන්න:
sudo nginx -t

7. සාරාංශය සහ ඊළඟ පියවර

මෙම මාර්ගෝපදේශයේ, Ubuntu මත Nginx ස්ථාපනය, වින්‍යාස කිරීම සහ කළමනාකරණය කිරීම පිළිබඳව අපි කවරා කර ඇත. අපි ඉගෙන ගත් දේ නැවත සමාලෝචනය කර ඊළඟ පියවර සොයා බලමු.

ප්‍රධාන කරුණු සාරාංශය

1. Ubuntu මත Nginx ස්ථාපනය කිරීම

  • අවශ්‍ය පැකේජ සකසා APT භාවිතා කර Nginx ස්ථාපනය කරන ලදී.
  • Nginx රැහැන් ගමන් කිරීමට firewall සකසා ඇත.

2. මූලික වින්‍යාසය

  • Nginx වින්‍යාස ගොනුවේ ව්‍යුහය අවබෝධ කර, වර්චුවල් හෝස්ට් සහ SSL/TLS සකසා ඇත.

3. Nginx කළමනාකරණය

  • Nginx ආරම්භ, නවතා, නැවත පූරණය කිරීම සඳහා අවශ්‍ය විධාන ඉගෙන ගත්තා.
  • ගැටළු විසඳීමට ලොග් පරීක්ෂා කළා.

4. ආරක්ෂක වැඩිදියුණුකම්

  • UFW සකසා අතිරේක ආරක්ෂක සැකසුම් යොදා ඇත.

5. කාර්ය සාධන සැකසුම් සහ ගැටළු විසඳීම

  • වැඩකරු ක්‍රියාවලි සුදුසු කර, HTTP/2 සක්‍රිය කර, කෑෂ් සකසා ඇත.
  • සාමාන්‍ය Nginx ගැටළු විසඳා ඇත.

ඊළඟ පියවර

Ubuntu මත Nginx මූලික කරුණු ඔබට දැන් ඇති බැවින්, පහත පියවර සලකා බලන්න:

  • ලෝඩ් බැලන්සින් සහ රිවර්ස් ප්‍රොක්සි වැනි උසස් වින්‍යාසයන් ඉගෙන ගන්න.
  • WAF සහ අතිරේක Nginx ආරක්ෂක මොඩියුල සමඟ ආරක්ෂාව වැඩිදියුණු කරන්න.
  • Ansible හෝ Docker භාවිතා කර ස්වයංක්‍රීය නිකුත් කිරීම සිදු කරන්න.
  • Prometheus සහ Grafana වැනි මෙවලම් භාවිතා කර කාර්ය සාධන නිරීක්ෂණය කරන්න.

මෙම සංකල්පයන් යොදා ගත්තාම, ඔබට Ubuntu මත Nginx සමඟ ඉහළ කාර්ය සාධන වෙබ් සේවාදායකයක් ක්‍රියාත්මක කර කළමනාකරණය කළ හැක.

年収訴求