Sebelum lanjut kepada caranya, mari kita bahas sedikit tentang Nginx. Nginx merupakan salah satu web yang paling populer didunia dan bertanggung jawab dalam meng-hosting beberapa situs dengan lalu lintas yang terbesar dan tertinggi di internet. Kelebihan Nginx sendiri lebih ramah sumber daya dibandingkan dengan Apache dalam beberapa kasus, serta dapat digunnakan sebagai web server maupun Reversed proxy.

PENTING!

Sebelum memulai panduan ini, Anda harus memiliki pengguna biasa non-root (bukan root) dengan hak istimewa sudo dan firewall dasar yang dikonfigurasi di server Anda. Anda dapat mempelajari cara mengonfigurasi akun pengguna biasa dengan mengikuti panduan penyiapan server awal untuk Ubuntu 18.04.

Ketika Anda telah memiliki akun yang tersedia, masuk sebagai pengguna non-root untuk memulai.

Langkah 1 > Install Nginx

Karena Nginx tersedia di repositori default Ubuntu, dimungkinkan untuk menginstalnya dari repositori ini menggunakan apt packaging system. Karena ini mungkin interaksi pertama Anda dengan sistem pengemasan apt di sesi ini, perbarui indeks paket lokal sehingga Anda memiliki akses ke daftar paket terbaru. Setelah login ke Ubuntu server melalui SSH ketik perintah berikut pada termal: 

nginx:

sudo apt update
sudo apt install nginx

Setelah menerima prosedur, apt akan menginstal Nginx dan semua dependensi yang diperlukan ke server anda.

Langkah 2 > Izinkan Akses Firewall

Sebelum mulai menguji Nginx, perangkat lunak firewall perlu disesuaikan untuk memungkinkan akses ke layanan. Nginx mendaftarkan dirinya sebagai layanan dengan ufw saat instalasi, membuatnya mudah untuk memungkinkan akses Nginx.

 

Daftar konfigurasi aplikasi yang ufw tahu cara bekerja dengan mengetik:

sudo ufw app list

Output bisa berbeda, namun yang perlu kita soroti adalah Nginx itu sendiri

Available applications:

Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

 Berikut ini, ada tiga profil yang tersedia untuk Nginx:

  1. Nginx Full: Profil ini membuka port 80 (normal, lalu lintas web tidak terenkripsi) dan port 443 (TLS / SSL lalu lintas terenkripsi)
  2. Nginx HTTP: Profil ini hanya membuka port 80 (normal, lalu lintas web tidak terenkripsi)
  3. Nginx HTTPS: Profil ini hanya membuka port 443 (TLS / SSL lalu lintas terenkripsi)

Anda disarankan agar mengaktifkan profil yang paling ketat yang masih mengizinkan lalu lintas yang telah Anda konfigurasikan. Karena Anda belum mengonfigurasi SSL untuk server Anda dalam panduan ini, Anda hanya perlu mengizinkan lalu lintas di port 80

Anda dapat mengaktifkan ini dengan mengetik berikut ini

sudo ufw allow 'Nginx HTTP'

Setelah selesai, cek konfigurasi Anda dengan perintah :

sudo ufw status

Anda akan melihat lalu lintas HTTP diizinkan di output yang ditampilkan:

Status: active

 

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere

Nginx HTTP                 ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 

Langkah 3 > Periksa Status Server

Di tahap proses instalasi ini, Ubuntu server sudah terpasang dan otomatis memulai Nginx. Server web seharusnya sudah aktif dan berjalan. Kita dapat memeriksa dengan systemd init system untuk memastikan layanan berjalan dengan mengetik:

systemctl status nginx

Output :

nginx.service - A high performance web server and a reverse proxy server

Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago

Docs: man:nginx(8)

Main PID: 2369 (nginx)

Tasks: 2 (limit: 1153)

CGroup: /system.slice/nginx.service

├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

          └─2380 nginx: worker process

Setelah Nginx Berjalan di terminal Linux, langkah selanjutnya periksa pada Browser dengan mengetik Alamat IP, Untuk mengetahui Alamat IP ada 2 cara yang bisa anda lakukan :

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

 

Untuk alternatif lain bisa juga menggunakan :

curl -4 icanhazip.com

Setelah mengetahui alamat IP silahkan ketik alamat IP pada Browser

http://alamat_ip_server_ip "contoh http://123.456.789.000"

Jika halaman yang muncul adalah halaman berikut, berarti Instalasi sudah berhasil :

 

Langkah 4 > Manajemen dasar Nginx

 

Sekarang setelah server web Anda aktif dan berjalan, mari kita tinjau beberapa perintah manajemen dasar.

 

Untuk menghentikan Nginx gunakan perintah :

sudo systemctl stop nginx

 

Untuk memulai Nginx (saat Nginx berhenti) gunakan perintah

sudo systemctl start nginx

 

Untuk menghentikan dan memulai ulang Nginx gunakan perintah

sudo systemctl restart nginx

 

Jika Anda hanya membuat perubahan konfigurasi, Nginx dapat memuat ulang tanpa menghambat koneksi ke server (delay sekitar 1-3 detik). Untuk melakukan ini, ketik:

sudo systemctl reload nginx

 

Secara default, Nginx dikonfigurasi untuk memulai secara otomatis ketika server melakukan booting. Jika ini bukan yang Anda inginkan, Anda dapat menonaktifkan perilaku ini dengan mengetik:

sudo systemctl disable nginx

 

Untuk mengaktifkan kembali layanan untuk memulai saat boot, Anda dapat mengetik:

sudo systemctl enable nginx

 

Langkah 5 > Setting Server Blocks

 

Saat menggunakan web server Nginx, server block (mirip dengan host virtual di Apache) dapat digunakan untuk merangkum detail konfigurasi dan menghosting lebih dari satu domain di satu server. Kami akan menyiapkan domain bernama contoh.com, tetapi Anda harus menggantinya dengan nama domain Anda sendiri.

 

Nginx pada Ubuntu memiliki satu block server yang diaktifkan secara default yang dikonfigurasi untuk menyajikan dokumen dari direktori di /var/www/html. Meskipun ini bekerja dengan baik untuk satu situs, itu bisa menjadi berat jika Anda meng-hosting beberapa situs.

 

Daripada memodifikasi /var/www/html, mari kita membuat struktur direktori di dalam /var/www untuk situs contoh.com kami, membiarkan /var/www/html sebagai direktori default untuk dilayani jika permintaan klien tidak cocok dengan situs lain mana pun..

 

Buat direktori untuk example.com sebagai berikut, menggunakan flag -p (p = parent directory) untuk membuat direktori induk yang diperlukan:

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

 

Next, tetapkan kepemilikan direktori dengan variabel $USER:

sudo chown -R $USER:$USER /var/www/contoh.com

 

Izin root web harus benar jika Anda belum mengubah nilai umask, tetapi Anda dapat memastikan dengan mengetik:

sudo chmod -R 755 /var/www/contoh.com

Selanjutnya, buat halaman contoh index.html menggunakan nano atau editor favorit Anda:

nano /var/www/contoh.com/index.html

Di dalam, tambahkan contoh HTML berikut:

<html>

    <head>

        <title>Situs Pertama!</title>

    </head>

    <body>

        <h1>Berhasil! Pengaturan Server block Nginx Berhasil!</h1>

    </body>

</html>

Simpan dan tutup file jika anda telah selesai. Jika Anda menggunakan nano, Anda dapat keluar dengan menekan CTRL + X lalu Y dan ENTER.

 

Agar Nginx dapat menyajikan konten ini, Anda perlu membuat block server dengan arahan yang benar. Daripada memodifikasi file konfigurasi default secara langsung, mari kita buat yang baru di :

sudo nano /etc/nginx/sites-available/contoh.com

 

Copy dan Paste konfigurasi block berikut, yang mirip dengan default, tetapi diperbarui untuk direktori dan nama domain baru kami:

 

server {

        listen 80;

        listen [::]:80;

        root /var/www/ contoh.com;

        index index.html index.htm index.nginx-debian.html;

        server_name contoh.com www.contoh.com;

        location / {

                try_files $uri $uri/ =404;

        }

}

 

 

Perhatikan bahwa kami telah memperbarui konfigurasi root ke direktori baru, dan server_name ke nama domain.

 

Selanjutnya, mari kita aktifkan file dengan membuat tautan dari situ ke direktori yang didukung situs, yang dibaca Nginx saat startup:

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

 

Dua blok server sekarang diaktifkan dan dikonfigurasi untuk merespons permintaan berdasarkan perintah listen dan server_name.

 

  • contoh.com: Akan menanggapi permintaan untuk contoh.com dan www.contoh.com
  • default: Akan menanggapi setiap permintaan pada port 80 yang tidak cocok dengan dua blok lainnya.

Untuk menghindari kemungkinan masalah memori hash bucket yang dapat timbul dari penambahan nama server tambahan, perlu untuk menyesuaikan nilai tunggal dalam file /etc/nginx/nginx.conf. Buka file:

 

sudo nano /etc/nginx/nginx.conf

 

Temukan direktif server_names_hash_bucket_size dan hapus simbol # untuk menghilangkan komentar pada baris:

...

http {

    ...

    server_names_hash_bucket_size 64;

    ...

}

...

 

Selanjutnya, uji untuk memastikan bahwa tidak ada kesalahan sintaks pada file Nginx Anda

sudo nginx -t

Jika tidak ada masalah, mulai ulang Nginx untuk mengaktifkan perubahan Anda:

sudo systemctl restart nginx

 

Nginx sekarang harus melayani nama domain Anda. Untuk melihat pengujian konfigurasi ini dengan menavigasi ke http://contoh.com, Anda akan melihat sesuatu seperti ini:

Atau:

 

Langkah 6 > Mengenal File dan Direktori Nginx Penting

Sekarang setelah Anda mengetahui cara mengelola layanan Nginx itu sendiri, Anda harus meluangkan beberapa menit untuk membiasakan diri dengan beberapa direktori dan file penting.

 

Isi

  • /var/www/html: Konten web yang sebenarnya, yang secara default hanya terdiri dari halaman Nginx default yang Anda lihat sebelumnya, disajikan di luar direktori /var/www/html. Ini dapat diubah dengan mengubah file konfigurasi Nginx.

Konfigurasi Server

  • /etc/nginx: Direktori konfigurasi Nginx. Semua file konfigurasi Nginx berada di sini.
  • /etc/nginx/nginx.conf: File konfigurasi Nginx utama. Ini dapat dimodifikasi untuk membuat perubahan pada konfigurasi global Nginx.
  • /etc/nginx/sites-available/: Direktori tempat blok server per situs dapat disimpan. Nginx tidak akan menggunakan file konfigurasi yang ditemukan di direktori ini kecuali file tersebut ditautkan ke direktori yang mendukung situs. Biasanya, semua konfigurasi blok server dilakukan di direktori ini, dan kemudian diaktifkan dengan menautkan ke direktori lain.
  • /etc/nginx/sites-enabled/: Direktori tempat blok server per situs yang diaktifkan disimpan. Biasanya, ini dibuat dengan menautkan ke file konfigurasi yang ditemukan di direktori situs yang tersedia.
  • /etc/nginx/snippets: Direktori ini berisi fragmen konfigurasi yang dapat dimasukkan di tempat lain dalam konfigurasi Nginx. Segmen konfigurasi yang berpotensi berulang adalah kandidat yang baik untuk pemfaktoran ulang menjadi cuplikan.

Log Server

  • /var/log/nginx/access.log: Setiap permintaan ke server web Anda dicatat dalam file log ini kecuali jika Nginx dikonfigurasi untuk melakukan sebaliknya.
  • /var/log/nginx/error.log: Setiap kesalahan Nginx akan dicatat di log ini.


Kesimpulan

Sekarang setelah server web Anda terinstal, Anda memiliki banyak opsi untuk jenis konten yang akan disajikan dan teknologi yang ingin Anda gunakan untuk menciptakan pengalaman yang lebih kaya.

About The Author