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:
- 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.
- 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!