Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Linux

Instalasi dan Konfigurasi Nginx pada CentOS 7: Panduan Lengkap Langkah demi Langkah

Nginx adalah salah satu web server open-source paling powerful dan banyak diadopsi di dunia. Dikenal karena performa luar biasa, jejak memori rendah, dan kemampuan menangani ribuan koneksi bersamaan, Nginx adalah solusi pilihan untuk melayani konten statis, bertindak sebagai reverse proxy, dan melakukan load balancing di seluruh sistem terdistribusi.

Baik Anda menjalankan blog pribadi, platform e-commerce dengan traffic tinggi, atau arsitektur microservices yang kompleks, Nginx memberikan kecepatan dan keandalan yang diharapkan pengguna Anda. Panduan komprehensif ini memandu Anda melalui setiap langkah instalasi, konfigurasi, pengamanan, dan optimasi Nginx pada server CentOS 7 — dari persiapan sistem awal hingga mengaktifkan HTTPS dengan sertifikat SSL Let’s Encrypt gratis.

> Prasyarat: Server CentOS 7 dengan akses root atau sudo. Jika Anda membutuhkan lingkungan yang andal dan berkinerja tinggi untuk mengikuti panduan ini, pertimbangkan untuk menjelajahi VPS Hosting dari AlexHost — dirancang khusus untuk beban kerja yang menuntut dengan akses root penuh dan penyimpanan SSD.

Langkah 1: Perbarui Sistem Anda

Sebelum menginstal perangkat lunak baru apa pun, sangat penting untuk memastikan sistem CentOS 7 Anda sepenuhnya terbaru. Paket yang ketinggalan zaman dapat memperkenalkan kerentanan keamanan dan konflik ketergantungan yang memperumit proses instalasi.

Buka terminal Anda dan jalankan perintah berikut:

sudo yum update -y

Perintah ini memperbarui semua paket yang terinstal ke versi terbaru yang tersedia. Bendera -y secara otomatis mengonfirmasi semua prompt, membuat proses non-interaktif. Biarkan pembaruan selesai sepenuhnya sebelum melanjutkan.

Langkah 2: Instal Nginx via YUM

Nginx tidak tersedia di repositori dasar CentOS 7 default. Anda harus terlebih dahulu menginstal repositori EPEL (Extra Packages for Enterprise Linux), yang menyediakan berbagai macam paket perangkat lunak tambahan untuk distribusi berbasis RHEL.

Instal repositori EPEL:

sudo yum install epel-release -y

Instal Nginx:

sudo yum install nginx -y

Perintah ini mengunduh dan menginstal Nginx beserta semua dependensi yang diperlukan. Setelah instalasi selesai, Anda dapat memverifikasi versi yang diinstal dengan:

nginx -v

Anda akan melihat output yang mirip dengan:

nginx version: nginx/1.20.x

Langkah 3: Mulai dan Aktifkan Layanan Nginx

Dengan Nginx terinstal, Anda perlu memulai layanan dan mengonfigurasinya untuk diluncurkan secara otomatis setiap kali server di-boot ulang.

Mulai layanan Nginx:

sudo systemctl start nginx

Aktifkan Nginx untuk memulai saat boot:

sudo systemctl enable nginx

Periksa status layanan untuk memastikan layanan berjalan:

sudo systemctl status nginx

Anda akan melihat output yang menunjukkan bahwa layanan aktif (berjalan):

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; ...)
   Active: active (running) since ...

Jika layanan gagal memulai, tinjau log kesalahan di /var/log/nginx/error.log untuk informasi diagnostik.

Langkah 4: Konfigurasi Firewall

CentOS 7 menggunakan firewalld sebagai alat manajemen firewall default. Secara default, lalu lintas HTTP (port 80) dan HTTPS (port 443) diblokir. Anda harus secara eksplisit membuka port ini untuk memungkinkan lalu lintas web mencapai server Nginx Anda.

Izinkan lalu lintas HTTP:

sudo firewall-cmd --permanent --add-service=http

Izinkan lalu lintas HTTPS:

sudo firewall-cmd --permanent --add-service=https

Muat ulang firewall untuk menerapkan perubahan:

sudo firewall-cmd --reload

Verifikasi aturan aktif:

sudo firewall-cmd --list-all

Anda harus melihat http dan https terdaftar di bagian services dari output. Jika server Anda dihosting di belakang firewall eksternal atau grup keamanan (umum dengan penyedia cloud), pastikan aturan tersebut juga diperbarui untuk memungkinkan lalu lintas pada port 80 dan 443.

Langkah 5: Verifikasi Instalasi

Untuk mengkonfirmasi bahwa Nginx terinstal dengan benar dan melayani konten, buka browser web dan navigasikan ke alamat IP publik server Anda:

http://your_server_ip

Anda akan disambut oleh halaman selamat datang Nginx default, yang menampilkan pesan *"Welcome to nginx!"*. Ini mengkonfirmasi bahwa web server beroperasi dan dapat diakses dari internet.

Jika Anda tidak melihat halaman selamat datang, periksa kembali hal berikut:

  • Layanan Nginx sedang berjalan (sudo systemctl status nginx)
  • Aturan firewall diterapkan dengan benar
  • Alamat IP server Anda sudah benar
  • Tidak ada layanan lain (seperti Apache) yang menempati port 80

Langkah 6: Konfigurasi Nginx Server Blocks

Nginx menggunakan server blocks (secara fungsional setara dengan virtual hosts Apache) untuk menentukan cara menangani permintaan untuk domain atau subdomain yang berbeda. Setiap server block biasanya disimpan sebagai file konfigurasi terpisah di dalam direktori /etc/nginx/conf.d/.

File konfigurasi Nginx utama terletak di /etc/nginx/nginx.conf. File ini menyertakan direktif yang secara otomatis memuat semua file .conf dari direktori conf.d, menjaga konfigurasi Anda tetap modular dan mudah dikelola.

Langkah 6a: Buat File Konfigurasi Server Block Baru

Buat file konfigurasi baru untuk domain Anda. Ganti example.com dengan nama domain aktual Anda:

sudo nano /etc/nginx/conf.d/example.com.conf

Tambahkan konfigurasi server block berikut:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm index.php;

    # Logging
    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log;

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

    # Deny access to hidden files
    location ~ /. {
        deny all;
    }
}

Penjelasan direktif kunci:

DirektifDeskripsi
listen 80Menginstruksikan Nginx untuk mendengarkan koneksi masuk pada port 80 (HTTP)
server_nameMenentukan nama domain yang direspons oleh server block ini
rootMenentukan direktori document root tempat file website disimpan
indexMenentukan file default yang akan disajikan Nginx ketika direktori diminta
try_filesMencoba melayani URI yang diminta sebagai file, kemudian sebagai direktori, dan mengembalikan 404 jika keduanya tidak ada
access_log / error_logMenentukan file log terpisah untuk virtual host ini untuk debugging yang lebih mudah

Simpan file dan keluar dari editor (Ctrl+X, kemudian Y, kemudian Enter di nano).

Langkah 7: Buat Document Root dan File Pengujian

Buat direktori document root yang Anda tentukan dalam konfigurasi server block:

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

Buat file index.html sederhana untuk memverifikasi bahwa server block berfungsi dengan benar:

echo "<h1>Welcome to Example.com — Powered by Nginx on CentOS 7!</h1>" | sudo tee /var/www/example.com/html/index.html

Atur kepemilikan dan izin yang benar sehingga Nginx dapat membaca file:

sudo chown -R nginx:nginx /var/www/example.com/
sudo chmod -R 755 /var/www/example.com/

> Catatan tentang SELinux: CentOS 7 dilengkapi dengan SELinux yang diaktifkan secara default. Jika Nginx tidak dapat membaca file web Anda bahkan dengan izin yang benar, Anda mungkin perlu menerapkan konteks SELinux yang sesuai:

> “`bash

> sudo chcon -Rt httpd_sys_content_t /var/www/example.com/

> “`

Langkah 8: Uji Konfigurasi Nginx

Sebelum memulai ulang Nginx untuk menerapkan konfigurasi baru Anda, selalu uji kesalahan sintaks. File yang salah konfigurasi dapat mematikan seluruh server web Anda.

Jalankan tes konfigurasi:

sudo nginx -t

Tes yang berhasil menghasilkan output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika ada kesalahan yang dilaporkan, tinjau dengan hati-hati nomor baris yang ditunjukkan dalam file konfigurasi Anda dan perbaiki masalah apa pun sebelum melanjutkan.

Mulai ulang Nginx untuk menerapkan perubahan:

sudo systemctl restart nginx

Alternatifnya, jika Anda ingin memuat ulang konfigurasi tanpa memutuskan koneksi aktif (direkomendasikan untuk lingkungan produksi), gunakan:

sudo systemctl reload nginx

Sekarang navigasikan ke domain Anda di browser. Anda seharusnya melihat halaman index.html kustom Anda.

Langkah 9: Atur HTTPS dengan Let’s Encrypt

Menjalankan situs web melalui HTTP biasa mengekspos pengguna Anda terhadap potensi penyadapan dan serangan man-in-the-middle. Mengamankan situs Anda dengan HTTPS tidak lagi opsional — ini adalah persyaratan fundamental untuk kepercayaan pengguna, integritas data, dan peringkat mesin pencari.

Let’s Encrypt menyediakan sertifikat SSL/TLS gratis, otomatis, dan terpercaya. Anda juga dapat menjelajahi Sertifikat SSL premium dari AlexHost untuk validasi diperluas dan opsi yang divalidasi organisasi yang menawarkan tingkat kepercayaan lebih tinggi untuk situs web bisnis.

Instal Certbot dan Plugin Nginx

sudo yum install certbot python2-certbot-nginx -y

Dapatkan dan Instal Sertifikat SSL

Jalankan Certbot dengan plugin --nginx, yang secara otomatis memodifikasi konfigurasi Nginx Anda untuk mengaktifkan HTTPS:

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

Ikuti petunjuk interaktif:

  1. Masukkan alamat email Anda untuk notifikasi pembaruan
  2. Setujui Syarat Layanan Let’s Encrypt
  3. Pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS (sangat disarankan — pilih opsi 2)

Certbot akan secara otomatis:

  • Dapatkan sertifikat yang ditandatangani dari Let’s Encrypt
  • Modifikasi /etc/nginx/conf.d/example.com.conf Anda untuk menyertakan direktif SSL
  • Konfigurasikan pengalihan HTTP-ke-HTTPS

Setelah selesai, verifikasi konfigurasi HTTPS dengan mengunjungi:

https://example.com

Browser Anda harus menampilkan ikon gembok, mengkonfirmasi bahwa koneksi dienkripsi.

Langkah 10: Otomatisasi Pembaruan Sertifikat

Sertifikat Let's Encrypt berlaku selama 90 hari. Gagal memperbarui sebelum kedaluwarsa akan menyebabkan situs Anda menampilkan peringatan keamanan kepada pengunjung, berdampak parah pada kepercayaan pengguna dan lalu lintas.

Uji Proses Pembaruan

Sebelum menyiapkan otomasi, verifikasi bahwa proses pembaruan berfungsi dengan benar:

sudo certbot renew --dry-run

Dry run yang berhasil mengkonfirmasi bahwa pembaruan otomatis akan berfungsi tanpa masalah.

Siapkan Cron Job untuk Pembaruan Otomatis

Buka crontab root:

sudo crontab -e

Tambahkan baris berikut untuk memeriksa dan memperbarui sertifikat dua kali sehari (frekuensi yang direkomendasikan):

0 0,12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

Penjelasan jadwal cron:

    0 0,12 * * * — Berjalan pada tengah malam dan siang setiap hari
    --quiet — Menekan output kecuali terjadi kesalahan
    --post-hook "systemctl reload nginx" — Memuat ulang Nginx setelah pembaruan berhasil untuk menerapkan sertifikat baru tanpa downtime
    
    Simpan dan keluar dari editor crontab. Sertifikat SSL Anda sekarang akan diperbarui secara otomatis, menjaga situs Anda tetap aman tanpa intervensi manual.
    Tips Optimasi Performa Nginx di CentOS 7
    Setelah setup dasar selesai, pertimbangkan peningkatan konfigurasi ini untuk memaksimalkan performa Nginx:
    Aktifkan Kompresi Gzip
    Tambahkan berikut ke nginx.conf dalam blok http {} untuk mengurangi ukuran respons yang dikirim ke klien:
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
    Konfigurasi Caching Browser
    Tambahkan header cache-control untuk aset statis untuk mengurangi beban server dan meningkatkan waktu muat halaman:
    location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
    Sesuaikan Worker Processes
    Di /etc/nginx/nginx.conf, atur jumlah worker processes agar sesuai dengan jumlah CPU core server Anda:
    worker_processes auto;
    worker_connections 1024;
    > Untuk aplikasi yang resource-intensive atau website dengan traffic tinggi, pertimbangkan upgrade ke Dedicated Servers dari AlexHost, yang menyediakan CPU, RAM, dan storage resources terjamin tanpa efek noisy-neighbor.
    Mengelola Beberapa Website dengan Nginx
    Salah satu kekuatan terbesar Nginx adalah kemampuannya untuk menampilkan beberapa website di satu server melalui server blocks. Untuk setiap domain tambahan, cukup:
    
    Buat file .conf baru di /etc/nginx/conf.d/
  • Tentukan direktif server_name yang unik
  • Arahkan direktif root ke document root yang sesuai
  • Jalankan sudo nginx -t dan sudo systemctl reload nginx
  • Jika Anda lebih suka antarmuka grafis untuk mengelola web server, virtual hosts, database, dan akun email, pertimbangkan VPS dengan cPanel — solusi control panel yang sepenuhnya dikelola yang menyederhanakan administrasi server tanpa mengorbankan fleksibilitas.

    Atau, jelajahi rangkaian lengkap VPS Control Panels yang tersedia dari AlexHost, termasuk Plesk, DirectAdmin, dan opsi lainnya yang sesuai dengan alur kerja dan preferensi teknis yang berbeda.

    Troubleshooting Common Nginx Issues on CentOS 7

    MasalahKemungkinan PenyebabSolusi
    Nginx gagal dimulaiPort 80/443 sudah digunakanJalankan `sudo ss -tlnpgrep :80` untuk mengidentifikasi proses yang bertentangan
    Error 403 ForbiddenIzin file tidak benar atau konteks SELinuxPeriksa chmod/chown dan terapkan chcon untuk SELinux
    502 Bad GatewayBackend upstream (PHP-FPM, Node.js) tidak berjalanVerifikasi layanan backend aktif dan socket/port sudah benar
    Sertifikat SSL tidak diperbaharuiCertbot tidak dapat mengikat ke port 80Pastikan port 80 terbuka dan tidak ada proses lain yang membloknya
    Perubahan tidak berlakuKonfigurasi tidak dimuat ulangJalankan sudo systemctl reload nginx setelah setiap perubahan konfigurasi

    Kesimpulan

    Anda telah berhasil menginstal, mengonfigurasi, dan mengamankan Nginx di CentOS 7. Server Anda siap untuk menampilkan website dengan performa tinggi, menangani koneksi bersamaan secara efisien, dan melayani konten melalui koneksi HTTPS terenkripsi — semua kualitas penting untuk lingkungan web tingkat produksi modern.

    Berikut adalah ringkasan dari apa yang telah dicapai:

    • ✅ Memperbarui sistem CentOS 7 dan menginstal Nginx melalui repositori EPEL
    • ✅ Memulai dan mengaktifkan layanan Nginx untuk startup otomatis saat boot
    • ✅ Mengonfigurasi firewalld untuk mengizinkan lalu lintas HTTP dan HTTPS
    • ✅ Membuat dan mengonfigurasi blok server khusus untuk domain
    • ✅ Menetapkan izin file yang benar dan konteks SELinux untuk document root
    • ✅ Menguji konfigurasi untuk kesalahan sintaks sebelum menerapkan perubahan
    • ✅ Mengamankan situs dengan sertifikat SSL Let’s Encrypt gratis melalui Certbot
    • ✅ Mengotomatisasi pembaruan sertifikat dengan pekerjaan cron

    Mempertahankan web server yang aman dan berkinerja tinggi memerlukan perhatian berkelanjutan. Perbarui Nginx secara teratur, pantau log akses dan error Anda, dan tinjau konfigurasi Anda seiring dengan evolusi persyaratan situs Anda.

    Jika Anda mencari fondasi hosting yang kuat untuk proyek berbasis Nginx, AlexHost menawarkan spektrum lengkap solusi — dari Shared Web Hosting tingkat pemula untuk situs yang lebih kecil hingga VPS berkinerja tinggi dan infrastruktur dedicated untuk aplikasi yang menuntut. Setiap paket didukung oleh hardware tingkat enterprise, dukungan teknis 24/7, dan komitmen terhadap uptime dan keamanan.