Cara Install Nginx di Fedora 40 atau 39

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.

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

Tinggalkan komentar