Install dan Konfigurasi Nginx di Ubuntu Server

Dari Catatan Pak Samsul
Loncat ke navigasi Loncat ke pencarian

Langkah 1 – Install Nginx

Karena Nginx tersedia di repositori default Ubuntu, maka pengguna dapat menginstal dari repositori ini menggunakan apt packaging system.

setelah login ke Ubuntu server melalui SSH ketik perintah berikut pada terminal :

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 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

Available applications:

Nginx Full

Nginx HTTP

Nginx HTTPS

OpenSSH

Seperti yang Anda lihat, ada tiga profil yang tersedia untuk Nginx:

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

Disarankan agar Anda mengaktifkan profil paling ketat yang masih memungkinkan lalu lintas yang aman ke server Ubuntu Anda. Karena masih tahap awal dan mengonfigurasi SSL untuk server dalam panduan ini, kami hanya perlu mengizinkan lalu lintas di port 80.

Silahkan ketik perintah berikut untuk mengijinkan akses Nginx untuk melewati firewall

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 langkah 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/\/.*$//'

Setelah mengetahui alamat IP silahkan ketik alamat IP pada Browser

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

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 example.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.


Alih-alih memodifikasi /var/www/html, mari kita membuat struktur direktori di dalam /var/www untuk situs example.com kami, membiarkan/var/www/htmlsebagai 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/example.com

Next, tetapkan kepemilikan direktori dengan variabel $USER:

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

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

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

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

nano /var/www/example.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>

Save and close the file when you are finished.

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

sudo nano /etc/nginx/sites-available/example.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/example.com;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.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/

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

Simpan dan tutup file ketika Anda selesai.

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://example.com, Anda akan melihat sesuatu seperti ini:

server block nginx setelah berhasil