Panduan Lengkap untuk Memasang dan Mengkonfigurasi Nginx pada Ubuntu [Mesra Pemula]

1. Pengenalan

Ramai orang ingin menggunakan Nginx pada Ubuntu, tetapi jika anda baru mengenalnya, anda mungkin tidak tahu di mana hendak memulakan. Artikel ini menyediakan panduan langkah demi langkah untuk pemula, merangkumi segala-galanya dari pemasangan dan konfigurasi hingga pengurusan dalam persekitaran Ubuntu.

Apa itu Nginx?

Nginx (dibaca “engine-x”) ialah pelayan HTTP berprestasi tinggi dan pelayan proksi songsang. Ia digunakan secara meluas di seluruh dunia kerana reka bentuknya yang ringan dan fleksibel, terutamanya kebolehannya mengendalikan beban trafik yang tinggi.

Manfaat Menggunakan Nginx pada Ubuntu

Ubuntu ialah distribusi Linux yang popular dan serasi dengan Nginx. Dengan sistem pengurusan pakejnya (APT), pemasangan dan pengemaskinian Nginx menjadi mudah, serta ia menawarkan kestabilan dan keselamatan yang cemerlang.

Dengan membaca artikel ini, anda akan belajar:

  • Cara memasang Nginx pada Ubuntu
  • Prosedur konfigurasi dan pengurusan asas
  • Penalaan prestasi dan penyelesaian masalah

Mari kita mulakan.

2. Cara Memasang Nginx pada Ubuntu

Untuk menjalankan Nginx pada Ubuntu, anda perlu memasangnya dengan betul terlebih dahulu. Bahagian ini menyediakan panduan jelas, langkah demi langkah, untuk proses pemasangan.

Memeriksa Pakej yang Diperlukan

Sebelum memulakan pemasangan, pastikan sistem anda terkini dengan menjalankan arahan berikut:

sudo apt update
sudo apt upgrade

Memasang Nginx

Untuk memasang Nginx, masukkan arahan berikut:

sudo apt install nginx

Arahan ini secara automatik memuat turun dan memasang Nginx daripada repositori APT Ubuntu.

Mengesahkan Pemasangan

Untuk memeriksa sama ada pemasangan berjaya, gunakan arahan berikut untuk menyemak status Nginx:

sudo systemctl status nginx

Jika output menunjukkan “active (running)”, pemasangan telah berjaya.

Mengkonfigurasi Firewall

Ubuntu menyertakan UFW (Uncomplicated Firewall), yang boleh anda gunakan untuk membenarkan trafik Nginx.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Kini, Nginx disiapkan untuk beroperasi pada port 80 (HTTP) dan 443 (HTTPS).

3. Konfigurasi Asas Nginx pada Ubuntu

Sekadar memasang Nginx tidak mencukupi. Seterusnya, anda perlu mengkonfigurasikannya dengan betul untuk penggunaan yang berkesan.

Fail Konfigurasi dan Struktur Asas

Fail konfigurasi utama Nginx terletak di:

  • Fail konfigurasi utama: /etc/nginx/nginx.conf
  • Fail konfigurasi khusus laman: Di dalam direktori /etc/nginx/sites-available/

Biasanya, anda membuat fail konfigurasi host maya dalam sites-available dan membuat pautan simbolik ke sites-enabled untuk mengaktifkannya.

Menyediakan Host Maya

Host maya membolehkan anda menguruskan pelbagai domain atau projek pada satu pelayan. Contoh berikut menyediakan example.com:

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

Masukkan kandungan berikut:

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

Simpan fail dan aktifkan konfigurasi dengan arahan berikut:

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

Mengkonfigurasi SSL/TLS

Untuk membolehkan komunikasi selamat, sediakan sijil SSL/TLS. Anda boleh menggunakan Let’s Encrypt untuk mendapatkan sijil percuma.

Pertama, pasang certbot:

sudo apt install certbot python3-certbot-nginx

Seterusnya, jalankan arahan berikut untuk memperoleh dan secara automatik mengkonfigurasi sijil SSL:

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

Untuk mengelakkan tamat tempoh, sediakan juga pembaharuan sijil secara automatik.

4. Mengurus dan Mengawal Nginx

Selepas memasang dan mengkonfigurasi Nginx, anda perlu belajar cara memulakan, menghentikan, memuat semula konfigurasi, dan menyelesaikan masalah. Bahagian ini merangkumi arahan pengurusan penting serta teknik penyelesaian masalah.

Arahan Asas Nginx

Pada Ubuntu, anda boleh mengurus Nginx menggunakan arahan systemctl. Berikut adalah operasi utama:

  1. Mula Nginx
sudo systemctl start nginx
  1. Hentikan Nginx
sudo systemctl stop nginx
  1. Mulakan semula Nginx Diperlukan apabila membuat perubahan konfigurasi utama.
sudo systemctl restart nginx
  1. Muat semula Nginx Terapkan perubahan konfigurasi tanpa memulakan semula.
sudo systemctl reload nginx
  1. Semak Status Nginx Sahkan jika Nginx berjalan dengan betul.
sudo systemctl status nginx

Mengaktifkan Permulaan Automatik

Untuk memastikan Nginx bermula secara automatik selepas sistem dimulakan semula:

  1. Aktifkan permulaan automatik
sudo systemctl enable nginx
  1. Lumpuhkan permulaan automatik (jika diperlukan)
sudo systemctl disable nginx

Semak Log untuk Penyelesaian Masalah

Jika Nginx tidak berfungsi seperti yang dijangka, semak log untuk mencari punca.

  1. Lihat Log Ralat
sudo tail -f /var/log/nginx/error.log
  1. Lihat Log Akses
sudo tail -f /var/log/nginx/access.log

5. Mengkonfigurasi Firewall Nginx dan Meningkatkan Keselamatan

Keselamatan adalah penting apabila mengendalikan Nginx. Bahagian ini menerangkan cara mengkonfigurasi port menggunakan firewall Ubuntu (UFW) dan memperkukuhkan keselamatan Nginx.

Membuka Port Menggunakan UFW

UFW (Uncomplicated Firewall) adalah alat firewall yang disertakan dalam Ubuntu secara lalai. Untuk memastikan Nginx berfungsi dengan betul, anda perlu membuka port 80 (HTTP) dan 443 (HTTPS).

  1. Semak status UFW semasa
sudo ufw status
  1. Benarkan trafik Nginx Jalankan arahan berikut untuk membuka port yang diperlukan:
sudo ufw allow 'Nginx Full'
  1. Aktifkan UFW Jika firewall dilumpuhkan, aktifkannya:
sudo ufw enable

Penambahbaikan Keselamatan Tambahan

  1. Lumpuhkan Kaedah HTTP yang Tidak Perlu Untuk meningkatkan keselamatan, lumpuhkan kaedah HTTP yang tidak perlu dengan menambah yang berikut ke fail konfigurasi Nginx:
if ($request_method !~ ^(GET|POST|HEAD)$) {
    return 444;
}
  1. Lumpuhkan Senarai Direktori Halang kandungan direktori daripada boleh diakses secara awam dengan menambah:
autoindex off;
  1. Perkukuhkan SSL/TLS Gunakan tetapan penyulitan yang kuat dalam konfigurasi SSL anda:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

6. Penalaan Prestasi Nginx dan Penyelesaian Masalah

Nginx dikenali secara meluas kerana prestasinya yang tinggi, tetapi penalaan yang betul boleh meningkatkan kecekapannya lagi. Bahagian ini meliputi teknik pengoptimuman dan penyelesaian masalah biasa.

Penalaan Prestasi

1. Mengkonfigurasi Proses Pekerja

Nginx mengikuti arkitektur berbilang proses. Menetapkan bilangan proses pekerja yang sesuai mengoptimumkan prestasi.

Edit fail konfigurasi /etc/nginx/nginx.conf dan tetapkan:

worker_processes auto;

Tetapan “auto” secara automatik melaraskan bilangan proses pekerja berdasarkan teras CPU.

2. Tingkatkan Sambungan Pekerja

Secara lalai, setiap proses pekerja mempunyai bilangan sambungan yang terhad. Meningkatkan nilai ini meningkatkan pengendalian beban trafik tinggi.

Tambah atau ubah baris berikut dalam fail konfigurasi:

worker_connections 1024;

3. Aktifkan HTTP/2

Mengaktifkan HTTP/2 meningkatkan kecekapan komunikasi dan mempercepatkan masa pemuatan laman web.

Ubah fail /etc/nginx/sites-available/example.com dan ubah direktif listen seperti berikut:

listen 443 ssl http2;

Kemudian muat semula Nginx:

sudo systemctl reload nginx

4. Aktifkan Pemampatan Kandungan

Memampatkan fail sebelum menghantarnya mengurangkan penggunaan lebar jalur dan meningkatkan masa pemuatan.

Tambah atau aktifkan tetapan berikut:

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

5. Konfigurasi Cache

Menetapkan cache mengurangkan permintaan berulang untuk sumber statik.

Tambah konfigurasi berikut:

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

Penyelesaian Masalah Biasa

1. Pengendalian Permintaan Lambat Di Bawah Beban Tinggi

  • Punca: Proses pekerja tidak mencukupi atau had sambungan.
  • Penyelesaian: Laraskan proses pekerja dan sambungan, atau pertimbangkan penggunaan pemuat beban.

2. Ralat “403 Forbidden”

  • Punca: Arahan root yang tidak betul dalam fail konfigurasi atau kebenaran fail yang tidak tepat.
  • Penyelesaian: Periksa arahan root dan kemas kini kebenaran fail:
sudo chmod -R 755 /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html

3. Isu Masa Tamat Pelayan

  • Punca: Masa pemprosesan permintaan yang lama.
  • Penyelesaian: Laraskan tetapan masa tamat:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

4. Ralat Memulakan Semula Nginx

  • Punca: Ralat dalam fail konfigurasi.
  • Penyelesaian: Uji konfigurasi sebelum memulakan semula:
sudo nginx -t

7. Ringkasan dan Langkah Seterusnya

Dalam panduan ini, kami telah membincangkan cara memasang, mengkonfigurasi, dan mengurus Nginx pada Ubuntu. Mari kita semak apa yang telah dipelajari dan terokai langkah seterusnya.

Ringkasan Titik Utama

1. Memasang Nginx pada Ubuntu

  • Menyediakan pakej yang diperlukan dan memasang Nginx menggunakan APT.
  • Mengkonfigurasi firewall untuk membenarkan trafik Nginx.

2. Konfigurasi Asas

  • Memahami struktur fail konfigurasi Nginx dan menyiapkan host maya serta SSL/TLS.

3. Mengurus Nginx

  • Mempelajari perintah penting untuk memulakan, menghentikan, dan memuat semula Nginx.
  • Memeriksa log untuk penyelesaian masalah.

4. Penambahbaikan Keselamatan

  • Mengkonfigurasi UFW dan menerapkan tetapan keselamatan tambahan.

5. Penalaan Prestasi dan Penyelesaian Masalah

  • Mengoptimumkan proses pekerja, mengaktifkan HTTP/2, dan menyiapkan caching.
  • Menangani isu Nginx yang biasa.

Langkah Seterusnya

Kini anda telah menguasai asas Nginx pada Ubuntu, pertimbangkan langkah seterusnya berikut:

  • Pelajari konfigurasi lanjutan seperti pemuat beban dan proksi songsang.
  • Tingkatkan keselamatan dengan WAF dan modul keselamatan Nginx tambahan.
  • Automasi penyebaran menggunakan Ansible atau Docker.
  • Pantau prestasi dengan alat seperti Prometheus dan Grafana.

Dengan menerapkan konsep-konsep ini, anda dapat menjalankan dan mengurus pelayan web berprestasi tinggi dengan Nginx pada Ubuntu secara berkesan.