Nginx adalah server web yang sangat efisien dan dapat diskalakan, dikenal luas karena kemampuannya menangani sejumlah besar koneksi bersamaan dengan konsumsi sumber daya yang rendah. Nginx ideal untuk menyajikan konten statis dengan cepat, bertindak sebagai proxy terbalik, dan menyeimbangkan beban di beberapa server. Dengan arsitektur modularnya, Nginx dapat dengan mudah dikonfigurasi untuk memenuhi berbagai kebutuhan server web, termasuk dukungan SSL/TLS, caching, dan penulisan ulang URL, menjadikannya solusi serbaguna untuk penerapan skala kecil dan lingkungan dengan lalu lintas tinggi.
Pada Fedora 40 atau 39, Anda dapat menginstal Nginx menggunakan alat manajemen paket bawaan Fedora, yang memastikan Anda memiliki versi perangkat lunak yang aman dan terkini. Panduan ini akan memandu Anda melalui proses instalasi, memastikan bahwa Nginx telah diatur dengan benar untuk menangani persyaratan server web Anda. Baik Anda menghosting situs sederhana atau mengelola layanan web yang kompleks, Nginx di Fedora menyediakan keandalan dan kinerja yang Anda butuhkan.
Perbarui Fedora Sebelum Instalasi Nginx
Untuk memulai, penting untuk memperbarui sistem Fedora Anda. Langkah ini memastikan bahwa semua paket sistem Anda terkini, sehingga membuka jalan bagi instalasi NGINX yang lancar.
Jalankan perintah di bawah ini:
sudo dnf upgrade --refresh
Instal Nginx melalui Perintah DNF
Fedora menyertakan NGINX dalam repositori defaultnya, biasanya menawarkan versi terbaru atau terbaru. Ketersediaan ini menyederhanakan instalasi dan pemeliharaan di masa depan, terutama di luar lingkungan produksi ketat yang memerlukan fitur-fitur terbaru NGINX.
Instal NGINX di sistem Fedora Anda dengan perintah ini:
sudo dnf install nginx
Konfirmasikan Instalasi Nginx
Setelah NGINX terinstal, praktik yang baik adalah mengonfirmasi instalasi. Verifikasi ini membantu memastikan bahwa NGINX telah diatur dan dioperasikan dengan benar di sistem Anda.
Periksa versi NGINX yang terinstal dengan menjalankan:
nginx -v
Outputnya akan menampilkan versi NGINX yang diinstal, mengonfirmasi instalasi berhasil.
Konfigurasikan Aturan Firewall untuk NGINX
Menyesuaikan Pengaturan Firewall untuk HTTP dan HTTPS
NGINX memerlukan port khusus yang terbuka untuk menangani lalu lintas web. Secara default, firewall Fedora tidak secara otomatis mengonfigurasi aturan ini. Agar NGINX dapat menyajikan konten web, Anda harus menambahkan aturan untuk HTTP (port 80) dan HTTPS (port 443) secara manual. Gunakan perintah berikut untuk menyesuaikan pengaturan firewall Anda:
Buka port HTTP 80:
sudo firewall-cmd --permanent --zone=public --add-service=http
Untuk port HTTPS 443:
sudo firewall-cmd --permanent --zone=public --add-service=https
Menerapkan Perubahan Firewall
Setelah menambahkan layanan yang diperlukan, terapkan aturan firewall baru dengan memuat ulang firewalld:
sudo firewall-cmd --reload
Tindakan ini mengaktifkan pengaturan baru, memastikan sistem Fedora Anda siap untuk merutekan lalu lintas HTTP dan HTTPS ke NGINX.
Memverifikasi Status Layanan NGINX
Memeriksa Kesehatan Layanan NGINX
Setelah menginstal NGINX, memastikan layanan beroperasi sangatlah penting. Langkah verifikasi ini memastikan bahwa NGINX berjalan dengan benar di sistem Fedora Anda. Gunakan perintah berikut untuk memeriksa status layanan NGINX:
systemctl status nginx
Perintah ini menanyakan manajer layanan sistem untuk memberikan laporan status pada NGINX, yang menunjukkan apakah layanan aktif dan berjalan tanpa masalah.
Mengaktifkan dan Memulai Layanan NGINX
Jika NGINX tidak aktif, Anda perlu memulai layanan dan mengaktifkannya untuk diluncurkan saat boot. Jalankan perintah berikut untuk memulai NGINX sekarang dan mengaturnya untuk memulai saat boot sistem secara otomatis:
sudo systemctl enable nginx --now
Perintah ini menyesuaikan konfigurasi layanan sistem, memastikan NGINX berjalan dan diatur agar tetap ada saat reboot.
Menguji Konfigurasi NGINX
Untuk mengonfirmasi bahwa NGINX dikonfigurasi dengan benar dan responsif, akses halaman arahan default NGINX. Pertama, pastikan alamat IP server Anda dengan perintah ini:
curl -4 icanhazip.com
Jika perintah curl tidak tersedia, instal menggunakan:
sudo dnf install curl
Setelah eksekusi berhasil, Anda akan menerima output yang menampilkan alamat IP server, diformat sebagai XXX.XXX.XXX.XXX.
Mengakses Halaman NGINX Default
Dengan alamat IP server, Anda sekarang dapat menavigasi ke halaman awal NGINX. Buka peramban web Anda dan masukkan URL berikut, ganti your_server_ip dengan alamat IP sebenarnya:
http://your_server_ip
Alternatifnya, jika Anda melakukan pemeriksaan ini pada mesin lokal tempat NGINX diinstal, Anda dapat menggunakan:
http://localhost
Anda akan disambut dengan halaman selamat datang NGINX default, yang mengonfirmasi bahwa server web telah diinstal dengan benar dan menyajikan halaman.
Dengan mengakses halaman pengujian NGINX, Anda memvalidasi keberhasilan pengaturan dan kesiapan NGINX untuk konfigurasi lebih lanjut dan penerapan aplikasi web.
Konfigurasikan Struktur Direktori Domain untuk NGINX
Untuk memulai pengaturan hosting domain, seperti “example.com,” mulailah dengan membangun struktur direktori yang diperlukan dalam /var/www/. Selama proses ini, ganti “your_domain” dengan nama domain Anda yang sebenarnya.
Buat Direktori Domain
Buat direktori root domain untuk menyimpan file-file situs web. Parameter -p memastikan bahwa direktori induk yang diperlukan juga dibuat:
sudo mkdir -p /var/www/your_domain/html
Tetapkan Kepemilikan Direktori
Setelah membuat direktori, penting untuk menetapkan kepemilikan yang tepat. Tindakan ini menetapkan akun pengguna Anda sebagai pemilik, sehingga memungkinkan Anda mengubah file situs web:
sudo chown -R $USER:$USER /var/www/your_domain/html
Konfigurasikan Izin Direktori
Selanjutnya, ubah izin direktori untuk mengamankan dan menentukan tingkat akses. Perintah berikut menetapkan izin penuh untuk pemilik dan hanya membaca dan menjalankan izin untuk orang lain, yang merupakan praktik standar untuk direktori konten web:
sudo chmod -R 755 /var/www/your_domain
Sementara beberapa konfigurasi menyarankan penggunaan /usr/share/nginx/html, direktori /var/www direkomendasikan karena kesederhanaannya dan kemudahan penggunaan bagi mereka yang baru dalam manajemen server.
Membuat Halaman Uji HTML untuk Pengujian Nginx
Buat Halaman HTML Uji
Mulai pembuatan halaman HTML pengujian untuk mengonfirmasi status operasional server NGINX Anda. Halaman ini akan memvalidasi pengaturan yang benar dari instalasi NGINX Anda dan direktori blok server.
Luncurkan editor teks nano untuk mulai membuat halaman pengujian Anda:
nano /var/www/your_domain/html/index.html
Di dalam editor nano, isi berkas Anda dengan struktur HTML berikut, pastikan untuk mengganti your_domain dengan nama domain Anda yang sebenarnya:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>
Menyimpan dan Keluar dari Editor
Setelah memasukkan konten HTML, simpan progres Anda dengan menekan CTRL+O. Konfirmasikan operasi penyimpanan dan kemudian keluar dari editor dengan menekan CTRL+X.
Membuat halaman HTML pengujian ini adalah langkah penting dalam memverifikasi pengaturan yang tepat dari server NGINX Anda, memastikan server dikonfigurasi dan siap untuk menyajikan konten.
Buat Blok Server Nginx
Membuat Struktur Direktori untuk Blok Server
Mulailah dengan membuat struktur direktori yang diperlukan untuk blok server NGINX. Jalankan perintah di bawah ini untuk membuat direktori sites-available dan sites-enabled, yang akan menampung konfigurasi blok server Anda:
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
Mengonfigurasi File Konfigurasi Utama NGINX
Selanjutnya, ubah berkas konfigurasi NGINX utama untuk menyertakan blok server Anda. Buka berkas nginx.conf dengan perintah berikut:
sudo nano /etc/nginx/nginx.conf
Di dalam berkas, beri komentar pada baris yang menyertakan blok server default dan tambahkan baris untuk menyertakan blok server dari direktori sites-enabled:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
###EDIT HERE### #
# include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}
Simpan perubahan Anda dengan CTRL+O dan keluar dengan CTRL+X.
Membuat File Blok Server Domain Anda
Sekarang, buat file konfigurasi blok server untuk domain Anda. Ganti your_domain dengan nama domain Anda yang sebenarnya:
sudo nano /etc/nginx/sites-available/your_domain.conf
Masukkan konfigurasi berikut, sesuaikan perintah server_name dan root agar cocok dengan domain dan root dokumen Anda:
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
root /var/www/your_domain/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Setelah menyesuaikan konfigurasi, simpan berkas (CTRL+O) dan keluar (CTRL+X).
Aktifkan Blok Server Nginx
Aktifkan blok server domain Anda dengan membuat tautan simbolis ke direktori sites-enabled:
sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
Langkah ini memastikan NGINX menyertakan blok server Anda pada pemuatan ulang berikutnya.
Mengubah Ukuran Hash Bucket dalam Konfigurasi NGINX
Sebelum menyelesaikannya, sangat penting untuk menyesuaikan server_names_hash_bucket_size guna mencegah potensi masalah konfigurasi. Buka kembali berkas nginx.conf:
sudo nano /etc/nginx/nginx.conf
Pastikan baris berikut tidak dikomentari atau ditambahkan:
server_names_hash_bucket_size 64;
Menguji Konfigurasi NGINX
Validasi konfigurasi NGINX Anda untuk menghindari kesalahan runtime:
sudo nginx -t
Cari pesan sukses yang menunjukkan konfigurasi yang valid.
Memulai ulang NGINX untuk Menerapkan Perubahan
Jika pengujian konfigurasi berhasil, lanjutkan dengan memulai ulang NGINX untuk menerapkan perubahan Anda:
sudo systemctl restart nginx
Memverifikasi Blok Server Anda
Untuk mengonfirmasi blok server Anda aktif, navigasikan ke domain Anda di browser web.
Jika halaman pengujian tidak ditampilkan seperti yang diharapkan, periksa blok server default di nginx.conf yang mungkin perlu dihapus.
Perintah Tambahan Untuk Nginx
Amankan Nginx dengan Mari Enkripsi Sertifikat Gratis SSL
Instal Certbot untuk NGINX
Tingkatkan keamanan server NGINX Anda dengan mengaktifkan HTTPS menggunakan sertifikat SSL gratis dari Let's Encrypt. Mulailah dengan menginstal perangkat lunak Certbot, yang akan mengotomatiskan proses perolehan sertifikat:
sudo dnf install python3-certbot-nginx
Dapatkan dan Instal Sertifikat SSL
Dengan Certbot terinstal, Anda sekarang dapat memperoleh sertifikat SSL Anda. Jalankan perintah berikut, ganti email dan domain dengan informasi Anda:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
Perintah ini memperoleh sertifikat dan memodifikasi konfigurasi NGINX Anda untuk menerapkan HTTPS dengan menerapkan pengalihan 301, menambahkan header Strict-Transport-Security, dan mengaktifkan OCSP Stapling, sehingga meningkatkan postur keamanan server Anda.
Mengotomatiskan Perpanjangan Sertifikat SSL
Sertifikat yang diterbitkan oleh Let's Encrypt berlaku selama 90 hari. Untuk menghindari pembaruan manual, otomatiskan prosesnya dengan tugas cron. Pertama, uji proses pembaruan:
sudo certbot renew --dry-run
Jika uji coba berhasil, lanjutkan mengedit crontab Anda:
sudo crontab -e
Jika Cron tidak diinstal pada sistem Fedora Anda, instal dengan:
sudo dnf install cronie
Di crontab, jadwalkan pemeriksaan harian untuk perpanjangan sertifikat:
00 00 */1 * * /usr/sbin/certbot-auto renew
Simpan crontab Anda dengan SHIFT + :, ketik wq untuk menulis dan keluar, lalu tekan Enter
.
Anda akan melihat pesan konfirmasi yang menunjukkan keberhasilan penjadwalan tugas:
crontab: installing new crontab
Mengelola Layanan Nginx
Dengan Nginx yang kini berhasil disiapkan di server Anda, penting untuk mengingat pedoman manajemen berikut:
Menghentikan Server Web NGINX
Untuk menghentikan layanan NGINX, jalankan perintah berikut:
sudo systemctl stop nginx
Memulai Server Web NGINX
Jalankan layanan NGINX dengan perintah ini:
sudo systemctl start nginx
Memulai ulang Server Web NGINX
Untuk memulai ulang layanan NGINX sepenuhnya, gunakan:
sudo systemctl restart nginx
Memuat ulang Server Web NGINX
Terapkan perubahan kecil tanpa memulai ulang dengan memuat ulang NGINX:
sudo systemctl reload nginx
Menonaktifkan NGINX pada Boot Server
Cegah NGINX memulai saat boot sistem:
sudo systemctl disable nginx
Mengaktifkan NGINX pada Server Boot
Atur NGINX untuk memulai secara otomatis saat boot, meskipun perhatikan bahwa secara default diaktifkan saat instalasi:
sudo systemctl enable nginx
Perintah-perintah ini merupakan bagian integral dari manajemen rutin layanan NGINX, memastikan bahwa administrator dapat secara efektif mengontrol operasi server web dalam lingkungan Fedora Linux mereka.
Mengakses Log Server NGINX
Menavigasi ke Direktori Log
Untuk memulai, beralihlah ke direktori log NGINX:
cd /var/log/nginx/
Daftar konten untuk melihat file log yang tersedia:
ls
Dalam direktori ini, access.log dan error.log adalah file utama yang menyimpan permintaan server dan pesan kesalahan yang masuk. Memeriksa log ini secara berkala sangat penting untuk mengidentifikasi masalah, mengoptimalkan kinerja, dan menjaga kesehatan server.
Memantau Log secara Real-Time
Untuk pemantauan log langsung, perintah “tail” sangat berguna:
sudo tail -f /var/log/nginx/access.log
Perintah ini terus-menerus mengeluarkan entri log baru setelah rekamannya, berfungsi sebagai alat praktis untuk pemecahan masalah segera.
Meninjau Aktivitas Log Terbaru
Untuk meninjau entri terbaru, tampilkan 30 baris terakhir log akses:
sudo tail -f /var/log/nginx/access.log -n 30
Teknik Penyaringan Log Tingkat Lanjut
Untuk analisis log yang lebih canggih, grep dapat digunakan untuk memfilter log. Misalnya, untuk menemukan semua entri yang terkait dengan alamat IP tertentu, gunakan:
grep 'IP_ADDRESS' /var/log/nginx/access.log
Ganti IP_ADDRESS dengan alamat IP sebenarnya yang sedang Anda selidiki.
Untuk memantau log kesalahan pada tanggal tertentu, gabungkan grep dengan string tanggal:
grep '2023-11-07' /var/log/nginx/error.log
Ini memfilter entri dari 7 November 2023.
Untuk analisis yang lebih canggih, alat seperti awk dapat mengekstrak bidang tertentu, seperti kode respons:
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -n
Urutan ini mencetak kode status HTTP dari log akses, menghitungnya, dan mengurutkannya untuk mengidentifikasi kode yang paling sering digunakan.
Mengonfigurasi Rotasi Log NGINX
Menyesuaikan Pengaturan Rotasi Log
Untuk menyesuaikan rotasi log untuk NGINX, edit file konfigurasi di /etc/logrotate.d/:
sudo nano /etc/logrotate.d/nginx
File ini menentukan pengarsipan log, kompresi, dan manajemen rotasi NGINX. Defaultnya adalah pengaturan yang masuk akal dan memungkinkan penyesuaian agar sesuai dengan kebijakan logging atau persyaratan sistem tertentu.
Memahami Opsi Konfigurasi Logrotate
Berikut rincian arahan utama dalam konfigurasi logrotate:
- Harian, Mingguan, Bulanan: Mengatur interval rotasi log. Nilai default adalah harian, tetapi dapat disesuaikan menjadi mingguan atau bulanan berdasarkan seberapa sering Anda ingin mengarsipkan log.
- Rotasi: Menentukan jumlah file log lama yang akan disimpan. Nilai default adalah 14, artinya setelah 14 kali rotasi, file terlama akan dihapus.
- Compress: Mengaktifkan kompresi file log yang diputar untuk menghemat ruang. Secara default, ini diaktifkan.
- Delaycompress: Menunda kompresi ke siklus rotasi berikutnya, biasanya dipasangkan dengan kompres.
- Missingok: Memungkinkan logrotate untuk melanjutkan tanpa kesalahan jika berkas log tidak ada.
- Buat: Menetapkan izin dan kepemilikan untuk file log baru pasca-rotasi, memastikan akses yang aman dan tepat.
- Sharedscripts: Menjalankan skrip postrotate sekali setelah semua log diputar, yang efisien untuk memuat ulang layanan.
Contoh Konfigurasi Logrotate NGINX
Di bawah ini adalah contoh konfigurasi dengan penjelasan untuk setiap arahan:
/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
}
Praktik dan Pertimbangan Terbaik
- Pengaturan Default: Kecuali ada alasan kuat, disarankan menggunakan pengaturan default NGINX.
- Persyaratan Sistem: Sesuaikan pengaturan berdasarkan penggunaan sistem, kapasitas penyimpanan, dan kebutuhan aplikasi spesifik.
- Pemantauan Keamanan: Jika menggunakan alat seperti fail2ban, pastikan pengaturan rotasi log tidak mengganggu pemantauan log.
Dengan memahami dan mengonfigurasi pengaturan ini, administrator dapat memastikan pengelolaan log NGINX yang efisien dan aman sesuai dengan kebijakan logging mereka.
Memperbarui NGINX
Mencadangkan Konfigurasi NGINX
Sebelum memulai pembaruan, jaga konfigurasi NGINX Anda:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Menjalankan perintah ini akan menduplikasi berkas nginx.conf, dengan menambahkan .bak pada nama berkas. Pencadangan ini berfungsi sebagai jaring pengaman, yang memungkinkan Anda memulihkan pengaturan awal jika proses pembaruan memengaruhi konfigurasi khusus Anda.
Mengarsipkan Seluruh Direktori NGINX
Untuk pencadangan menyeluruh, arsipkan seluruh direktori NGINX:
sudo tar -czvf nginx_backup.tar.gz /etc/nginx/
Perintah ini mengkompilasi semua file konfigurasi, modul, dan data terkait ke dalam arsip tar yang di-gzip, memastikan Anda memiliki gambaran lengkap tentang pengaturan NGINX Anda saat ini.
Menjalankan Pembaruan NGINX
Untuk memperbarui NGINX, segarkan repositori Fedora Anda dan terapkan pembaruan terkini:
sudo dnf upgrade --refresh
Perintah ini memeriksa pembaruan dan, jika tersedia, meminta Anda untuk melanjutkan proses peningkatan, memastikan NGINX menjalankan versi terbaru dengan semua patch dan peningkatan keamanan.
Catatan: Selalu tinjau perubahan sebelum menerapkan pembaruan, terutama untuk layanan sepenting NGINX, untuk menghindari waktu henti yang tidak terduga atau masalah konfigurasi.
Menghapus instalasi NGINX
Hapus NGINX
Untuk menghapus NGINX dari sistem Anda, jalankan perintah berikut:
sudo dnf remove nginx
Perintah ini menghapus instalasi NGINX dan menghapus semua dependensi yatim piatu yang menyertai instalasinya, yang sekarang tidak diperlukan lagi.
Catatan: Tindakan ini akan menghentikan semua layanan NGINX dan menghapus berkas terkait. Jika Anda berencana untuk menggunakannya nanti atau bermigrasi ke server web lain, pastikan Anda telah mencadangkan berkas konfigurasi atau data situs web yang diperlukan.
Kesimpulan
Dengan memasang Nginx di sistem Fedora Anda, Anda telah membangun server web yang andal dan efisien yang siap menangani berbagai tugas, mulai dari menyediakan berkas statis hingga mengelola lalu lintas untuk aplikasi yang lebih kompleks. Pembaruan rutin melalui alat manajemen paket Fedora akan membantu menjaga instalasi Nginx Anda tetap aman dan berjalan lancar. Pertimbangkan untuk menyempurnakan konfigurasi Nginx agar sesuai dengan kebutuhan spesifik Anda, baik itu mengoptimalkan kinerja, meningkatkan keamanan, atau menyiapkan fitur lanjutan seperti penyeimbangan beban. Dengan manajemen yang tepat, Nginx akan terus memberikan kinerja yang tangguh untuk layanan web berbasis Fedora Anda.