Cara Install Nginx di Debian 12, 11 atau 10

Nginx adalah server web tangguh yang dikenal dengan kinerja tinggi dan konsumsi sumber daya rendah. Awalnya dirancang untuk menangani masalah C10k, ia unggul dalam menyajikan konten statis, penyeimbangan beban, dan proksi terbalik. Menggabungkan Nginx dengan Debian, yang terkenal dengan stabilitas dan keamanannya, menghasilkan lingkungan server yang kuat dan andal.

Fitur Utama Nginx:

  • Kinerja Tinggi: Secara efisien menangani beberapa koneksi bersamaan.
  • Penggunaan Sumber Daya Rendah: Dioptimalkan untuk dijalankan dengan memori dan CPU minimal.
  • Penyeimbangan Beban: Mendistribusikan lalu lintas ke beberapa server untuk meningkatkan kinerja.
  • Proksi Terbalik: Meneruskan permintaan klien ke server backend dengan lancar.
  • Penanganan Konten Statis: Menyajikan file statis dengan cepat dan efisien.
  • Fitur Keamanan: Mendukung SSL/TLS untuk komunikasi terenkripsi.
  • Fleksibilitas: Mendukung protokol seperti HTTP, HTTPS, SMTP, POP3, dan IMAP.

Keuntungan Menggabungkan Nginx dengan Debian:

  • Stabilitas: Reputasi stabilitas Debian memastikan server Anda tetap dapat diandalkan.
  • Keamanan: Langkah-langkah keamanan Debian yang kuat melindungi server Nginx Anda dari kerentanan.
  • Kemudahan Penggunaan: Sistem manajemen paket Debian menyederhanakan instalasi dan pemeliharaan Nginx.
  • Dukungan Komunitas: Nginx dan Debian memiliki komunitas kuat yang menyediakan sumber daya dan dukungan ekstensif.

Saat beralih ke pengaturan, Anda akan menemukan bahwa stabilitas Debian berpadu sempurna dengan efisiensi Nginx, menciptakan lingkungan yang ideal untuk aplikasi web Anda. Mari selidiki langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi Nginx di server Debian.

Mempersiapkan Sistem Anda Sebelum Instalasi Nginx

Pastikan sistem Anda diperbarui sebelum menginstal Nginx. Hal ini mencegah potensi konflik selama instalasi dan mengurangi risiko masalah kompatibilitas dan kerentanan keamanan.

Untuk memperbarui paket sistem Anda, jalankan perintah berikut:

sudo apt update && sudo apt upgrade

Perintah ini mengambil daftar pembaruan yang tersedia (via apt update) dan kemudian memutakhirkan paket perangkat lunak saat ini ke versi terbarunya (menggunakan apt upgrade).

Instal standar 'Server Web' NGINX

Secara default, NGINX tersedia di repositori Debian. Ini membuat proses instalasi menjadi mudah.

Jalankan perintah berikut untuk menginstal nginx:

sudo apt install nginx

Itu apt install perintah memberitahu utilitas penanganan paket APT (bagian dari sistem Debian) untuk menginstal paket NGINX.

Opsional: Instal NGINX-Versi Lengkap

NGINX menawarkan a nginx-full versi dengan modul tambahan tidak ditemukan dalam versi standar. Jika Anda memerlukan lebih banyak fungsionalitas, instal versi nginx-lengkap:

sudo apt install nginx-full

Opsional: Instal Versi NGINX-Extras

Untuk rangkaian fitur yang lebih luas, pertimbangkan nginx-extras versi. Untuk menginstal:

sudo apt install nginx-extras

Memverifikasi Instalasi NGINX

Setelah instalasi, pastikan NGINX berjalan dengan benar.

Periksa status layanan NGINX dengan yang berikut ini:

systemctl status nginx

NGINX beroperasi dengan benar jika output menunjukkan “aktif (berjalan).” Jika tidak, output akan merinci kesalahan untuk pemecahan masalah.

Jika NGINX tidak diaktifkan, gunakan:

sudo systemctl enable nginx --now

Konfigurasikan Firewall UFW Untuk Nginx

UFW, atau Uncomplication Firewall, menyediakan antarmuka yang mudah digunakan untuk mengelola aturan firewall iptables. Ini tidak diinstal di Debian secara default, tetapi Anda bisa mendapatkannya dari repositori default. Jika server Anda memiliki akses publik, Anda harus menyiapkan aturan UFW untuk keamanan.

Instal Firewall UFW

Jika UFW belum terinstal di sistem Anda, Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo apt install ufw

Aktifkan Firewall UFW

Setelah instalasi selesai, Anda dapat mengaktifkan UFW dengan menjalankan perintah berikut:

sudo ufw enable

Pengaturan default UFW memblokir semua koneksi masuk dan mengizinkan semua koneksi keluar. Ini berarti menghentikan akses sistem yang tidak diminta namun membiarkan sistem Anda menjangkau dunia luar.

Mencantumkan Aplikasi yang Diinstal

UFW menggunakan profil aplikasi, yang merupakan kumpulan aturan untuk aplikasi tertentu. Untuk melihat aplikasi terinstal yang memiliki profil UFW, jalankan:

sudo ufw app list

Mengonfigurasi Aturan UFW untuk NGINX

Tergantung pada kebutuhan Anda, Anda dapat mengonfigurasi UFW untuk mengizinkan koneksi NGINX melalui HTTP (Port 80), HTTPS (Port 443), atau keduanya.

Hanya untuk HTTP (Port 80):

sudo ufw allow 'Nginx HTTP'

HTTPS (Port 443) saja:

sudo ufw allow 'Nginx HTTPS'

Baik HTTP dan HTTPS:

sudo ufw allow 'Nginx Full'

Memverifikasi Aturan Firewall

Untuk mengonfirmasi bahwa aturan Anda sudah diterapkan, periksa aturan firewall yang aktif:

sudo ufw status

Menguji Konfigurasi NGINX

Setelah mengatur UFW, pastikan Anda dapat melihat halaman arahan NGINX. Di browser Anda, buka alamat IP server Anda:

http://your_server_ip

Atau, untuk pengaturan lokal:

http://localhost

Misalkan Anda melihat halaman default NGINX; konfigurasi Anda berfungsi. Ini mengakhiri pengaturan firewall untuk NGINX di Debian.

Buat Blok Server NGINX

Seperti host virtual Apache, blok server NGINX memungkinkan Anda meng-host beberapa domain dari satu server. Setiap domain memiliki pengaturan konfigurasinya sendiri. Untuk panduan ini, ganti “example.com” dengan nama domain Anda yang sebenarnya.

Buat Direktori untuk Domain Anda

Siapkan direktori untuk domain Anda. Direktori ini akan menyimpan file situs web Anda:

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

Tetapkan Kepemilikan ke Direktori Nginx

Tetapkan kepemilikan direktori ke pengguna dan grup “www-data”, yang biasanya digunakan NGINX:

sudo chown -R www-data:www-data /var/www/example.com/

Buat Halaman HTML Tes Nginx

Buat halaman HTML percobaan di direktori domain Anda untuk mengonfirmasi pengaturan NGINX Anda:

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

Tambahkan kode HTML berikut:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Setelah Anda menempelkan kode ke editor nano, tekan CTRL+O untuk menyimpan perubahan dan kemudian CTRL+X untuk keluar dari editor.

Buat Blok Server NGINX Untuk Halaman Uji

Siapkan blok server untuk situs web Anda:

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

Tambahkan konfigurasi berikut:

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Konfigurasi ini memberitahu NGINX untuk mendengarkan koneksi masuk pada port 80 untuk keduanya example.com Dan www.example.com. Pastikan untuk mengganti root direktif dengan jalur direktori yang Anda buat sebelumnya.

Aktifkan Blok Server NGINX melalui symlink

Aktifkan blok server Anda dengan membuat tautan simbolik dari direktori situs yang tersedia ke direktori situs yang diaktifkan:

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

Konfigurasi Akhir & Uji Coba

Terakhir, kami akan mengedit file konfigurasi NGINX default dan melakukan uji coba untuk memastikan semuanya berfungsi sesuai harapan.

Mengedit File Konfigurasi NGINX

Buka nginx.conf mengajukan:

sudo nano /etc/nginx/nginx.conf

Cari garisnya server_names_hash_bucket_size 64; di dalam http {} blokir dan batalkan komentarnya.

Arahan ini memungkinkan NGINX untuk menangani nama domain yang panjang dan jumlah nama server yang lebih banyak dengan mengalokasikan lebih banyak memori untuk tujuan ini. Namun, berhati-hatilah untuk tidak menetapkan nilai ini terlalu tinggi, karena dapat menghabiskan lebih banyak memori daripada yang dibutuhkan.

Simpan perubahan dan keluar dari editor dengan menekan CTRL+O dan CTRL+X.

Uji Konfigurasi NGINX Anda

Sebelum Anda melanjutkan dan memulai ulang NGINX, sebaiknya verifikasi bahwa sintaks konfigurasi Anda sudah benar. Jalankan perintah berikut untuk memulai uji coba:

sudo nginx -t

Jika konfigurasi Anda benar, Anda akan melihat keluaran ini:

nginx: file konfigurasi /etc/nginx/nginx.conf sintaksnya oke nginx: file konfigurasi /etc/nginx/nginx.conf tes berhasil

Pesan-pesan ini menunjukkan bahwa konfigurasi NGINX Anda telah berhasil divalidasi.

Memverifikasi Blok Server Anda

Untuk memastikan blok server Anda berfungsi dengan baik, buka domain Anda di browser web. Anda akan melihat halaman pengujian yang mengonfirmasi blok server Anda aktif.

Perintah Nginx Tambahan

Meningkatkan Keamanan File di Server Web Anda

Keamanan untuk file dan folder di server web Anda adalah yang terpenting. Hindari hak akses yang terlalu permisif. Gunakan perintah ini untuk mengatur izin yang benar untuk semua file dan direktori di webroot Anda.

Ingatlah untuk mengganti /var/www/example.com/ dengan jalur webroot Anda:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Perintah ini mengatur izin baca dan eksekusi untuk direktori dan izin baca-tulis untuk file bagi pemiliknya. Grup dan lainnya mendapatkan akses hanya baca. Sesuaikan izin ini sesuai permintaan aplikasi Anda.

Keamanan Nginx dengan Let's Encrypt Sertifikat SSL Gratis

Menggunakan protokol HTTPS memastikan keamanan server web. Let's Encrypt menyediakan sertifikat SSL gratis. Instal paket certbot dengan:

sudo apt install python3-certbot-nginx

Kemudian, mulai pembuatan sertifikat:

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

Ganti dengan email dan nama domain Anda. Perintah ini menyiapkan HTTPS dengan fitur keamanan yang diperlukan.

Menyiapkan Perpanjangan Sertifikat Otomatis

Mari Enkripsi sertifikat bertahan 90 hari. Siapkan perpanjangan otomatis dengan skrip Certbot. Uji prosesnya:

sudo certbot renew --dry-run

Jika berhasil, tambahkan perintah pembaharuan ke crontab:

sudo crontab -e

Sertakan baris ini untuk diperbarui setiap hari pada tengah malam:

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

Log Server Nginx

Pantau log server Anda untuk server web yang terpelihara dengan baik. Secara default, log berada di /var/log/nginx. Daftarkan mereka dengan:

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

File log yang paling relevan adalah access.log Dan error.log. Untuk memantau log secara real-time, gunakan tail -f perintah diikuti dengan jalur ke log:

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

Perbarui Nginx

Sebelum memperbarui server Nginx Anda, sebaiknya buat cadangan konfigurasi Anda saat ini. Untuk membuat cadangan utama Anda nginx.conf file, gunakan perintah berikut:

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

Jika Anda telah menyesuaikan pengaturan Nginx secara ekstensif, Anda mungkin ingin mencadangkan seluruh direktori Nginx Anda:

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

Setelah konfigurasi Anda dicadangkan dengan aman, kini Anda dapat melanjutkan untuk memperbarui Nginx:

sudo apt update
sudo apt upgrade

Mencadangkan konfigurasi Anda secara teratur adalah praktik yang baik, terutama dalam pengaturan yang rumit.

Hapus Nginx

Jika Anda tidak lagi membutuhkan Nginx di server Anda, Anda dapat menghapusnya dengan mengikuti langkah-langkah berikut. Pertama, pastikan layanan Nginx dihentikan:

sudo systemctl disable nginx --now

Selanjutnya, hapus seluruh paket Nginx:

sudo apt remove nginx

Anda mungkin masih menemukan sisa-sisa konfigurasi Nginx di /etc/nginx direktori. Untuk menghapusnya, gunakan perintah:

sudo rm -R /etc/nginx/

Ingatlah bahwa ini akan menghapus semua file konfigurasi khusus Anda, jadi pastikan Anda memiliki semua yang Anda perlukan untuk dicadangkan sebelum melanjutkan dengan langkah ini.

Konfigurasikan Parameter Rotasi Log di Nginx

Nginx menyertakan fitur rotasi log harian secara default. Namun, Anda dapat menyesuaikan pengaturan ini berdasarkan kebutuhan Anda.

Akses File Konfigurasi untuk Rotasi Log

Untuk mengubah pengaturan rotasi log, Anda perlu mengakses file konfigurasi. Berikut cara membukanya menggunakan editor teks nano:

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

Setelah Anda membuka file, Anda akan melihat konten seperti berikut. Sesuaikan arahan dalam file ini agar sesuai dengan kebutuhan retensi dan rotasi log Anda, terutama jika Anda menggunakan alat pemantauan seperti fail2ban.

Contoh File Konfigurasi Rotasi Log

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

Memahami Parameter Konfigurasi Utama

Dalam konfigurasi ini, administrator sistem biasanya fokus pada dua pengaturan utama:

  1. Sehari-hari: Pengaturan ini mengatur frekuensi rotasi log. Meskipun defaultnya adalah 'harian', Anda dapat mengubahnya menjadi 'mingguan' atau 'bulanan'. Namun, rotasi harian biasanya menyederhanakan pengelolaan log.
  2. Putar 14: Nomor ini memberi tahu sistem berapa banyak file log yang harus disimpan. Misalnya, pengaturan '14' mempertahankan 14 log terbaru. Jika Anda ingin menyimpan log hanya untuk seminggu, sesuaikan angka ini menjadi '7'.

Meskipun Nginx memungkinkan Anda mengubah pengaturan lain, selalu lakukan perubahan dengan hati-hati. Mengubah pengaturan tanpa memahami dampaknya dapat menimbulkan hasil yang tidak diharapkan. Pastikan Anda mengubah pengaturan ini sesuai kebutuhan Anda tanpa menyebabkan masalah yang tidak diinginkan.

Ingat, tidak ada pendekatan tunggal dalam pengelolaan log. Selalu nilai lingkungan dan persyaratan spesifik Anda sebelum melakukan perubahan.

Menutup Pikiran

Dalam panduan ini, kami membahas pengaturan Nginx di Debian, mencakup instalasi, konfigurasi, dan optimasi dasar. Dengan menggabungkan efisiensi Nginx dan stabilitas Debian, Anda telah menciptakan landasan yang kokoh untuk server web Anda. Ingatlah untuk selalu memperbarui server Anda dan menjelajahi modul Nginx tambahan untuk meningkatkan fungsionalitas. Jika Anda mengalami masalah apa pun, komunitas kuat di sekitar Debian dan Nginx selalu menjadi sumber daya yang bagus. Terima kasih telah mengikuti, dan selamat menjadi tuan rumah!

Joshua James
Ikuti aku
Postingan terbaru oleh Joshua James (Lihat semua)

Tinggalkan komentar