Konfigurasi UserDir dan VirtualHost NGINX pada Ubuntu 20.04

NGINX

Nginx (dibaca “Engine X”) merupakan salah satu aplikasi web server yang banyak juga dipakai dimasa kini. Nginx sangat populer dan juga dapat berfungsi sebagai reverse proxy server, load balancer dan cache server. Performa tinggi, efisiensi, dan skalabilitas membuat web server ini menjadikannya pilihan populer untuk banyak aplikasi dan lingkungan web.

Kenapa Harus NGINX ?

Seperti yang dijelaskan sebelumnya Nginx memiliki performa tinggi, efisiensi, skalabilitas dan dukungan fitur-fitur yang canggih membuatnya mampu menyaingi Apache2. Dengan konsumsi memori yang lebih rendah dan kemampuan caching yang kuat, Nginx dapat meningkatkan kinerja situs web dan memberikan pengalaman pengguna yang lebih baik.

1. UserDir

User Directory atau yang disingkat UserDir merupakan direktori pribadi suatu pengguna. Pada web server UserDir digunakan untuk mengakses direktori pribadi melalui browser dengan URL khusus. Contohnya:

http://domain.com/~kevin (Untuk user atau pengguna dengan nama kevin)

Dengan menggunakan fitur UserDir pada suatu web server, pengguna dapat mengakses direktori pribadi tanpa harus membuat VirtualHost atau konfigurasi tambahan. Namun, perlu diingat bahwa penggunaan UserDir harus dilakukan dengan hati-hati untuk menjaga keamanan server.

Step 1 – Instalasi
  1. Pastikan kalian mengupdate package server ubuntu kalian sebelum melakukan instalasi.$sudo apt update -y && apt upgrade -y
  2. Instal paket NGINX dengan mengetikkan perintah dibawah.$sudo apt install nginx
  3. Pergi ke direktori nginx agar kita mudah dalam mengkonfigurasi file nantinya.$cd /etc/nginx
Step 2 – Konfigurasi
  1. Masuk ke file halaman default NGINX.$sudo vim sites-available/defaultMasukkan perintah dibawah pada file halaman NGINX.server { listen 80; server_name localhost; location ~ ^/~(.+?)(/.*)?$ { alias /home/$1/public_html$2; index index.html index.htm; autoindex on; } }Perintah di atas digunakan untuk menambahkan lokasi “/” source dari suatu web yang diarahkan pada direktori user yang akan mengelola NGINX. Setelah perintahnya berhasil ditambahkan, save dan close file konfigurasi tersebut.
  2. Buatlah direktori public_html karena default userdir nya adalah public_html.$sudo mkdir /home/syawal/public_html
  3. Selanjutnya kita mengubah permission pada direktori user. Permission ini sangatlah penting agar web server dapat mengakses direktori tersebut. Jika tidak diubah permissionnya maka web server tidak akan bisa menampilkan halaman web kita.$sudo chmod 711 /home/syawal $sudo chmod 755 /home/syawal/public_html
  4. Selanjutnya kita membuat file index.html.$sudo vim /home/syawal/public_html/index.htmlMasukkan perintah dibawah pada file index.html. Isi dari file ini juga dapat kalian sesuaikan dengan keinginan atau kebutuhan. Disini saya hanya membikin perintah sederhana iuntk menampilkan tulisan saja.<html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Nginx UserDir Test Page by Syawal </div> </body> </html>
  5. Setelah selesai melakukan semua konfigurasi, jangan lupa untuk merestart layanan NGINX-nya.$sudo systemctl restart nginx
Step 3 – Pengujian atau Pengetesan
  1. Buka web browser yang akan digunakan sebagai pengujian. Ketikkan http://<ip atau domain>/~nama-user. Nantinya halaman web akan menampilkan konfigurasi file index.html yang telah kita buat.

2. VirtualHost

VirtualHost merupakan fitur pada web server dimana kita dapat membuat beberapa situs web (domain) pada sebuah server. Pada umumnya kita mengetahui bahwa web server hanya menjalankan satu situs web saja, tapi dengan menggunakan fitur VirtualHost ini memungkinkan kita untuk membuat beberapa halaman web hanya dalam sebuah server saja. Terdapat beberapa tipe konfigurasi pada VirtualHost, yaitu:

  • IP Based: Dengan IP Based memungkinkan web server untuk menjalankan halaman web dengan IP Address yang berbeda-beda, contohnya:server { listen 80; server_name 10.10.10.1; } server { listen 80; server_name 10.10.20.1; }
  • Hostname Based: Penggunaan Hostname Based memungkinan web server untuk menjalankan beberapa halaman web dengan domain atau hostname yang berbeda, contoh:server { listen 80; server_name domain1.com; } server { listen 80; server_name domain2.com; }
  • Port Based: Menggunakan Port Based dapat membuat web server menjalankan beberapa halaman web dengan Port yang berbeda, namun dengan IP yang sama, contoh:server { listen 80; server_name 10.10.10.1; } server { listen 800; server_name 10.10.10.1; }Penerapan VirtualHost ini biasanya digunakan pada shared hosting. Penggunaan VirtualHost ini juga membuat kita mudah dalam mengelola web server karena hanya memerlukan sebuah server fisik saja dan juga dapat menghemat biaya pengadaan alamat IP tambahan untuk setiap domain halaman web.
Step 1 – Konfigurasi
  1. Pergi ke direktori VirtualHost nginx dengan mengetikkan perintah dibawah. Direktori ini umumnya berisi file-file VirtualHost yang digunakan untuk website.$cd /etc/nginx/sites-available
  2. Disini kita akan membuat file VirtualHost baru. Kita tidak akan menggunakan file default VirtualHostnya.$sudo vim virtual-hostIsikan file VirtualHost yang sudah dibuat dengan perintah dibawah. Isi file ini dapat kalian kondisikan sesuai keinginan atau kebutuhan. Disini saya hanya membuat perintah sederhana untuk menampilkan index.html yang terletak pada direktori /var/www/virtual. untuk bagian server_name dapat di isi dengan domain ataupun IP address pada server kalian. Bisa juga dengan perintah localhost.server { listen 8080; server_name localhost; location / { root /var/www/virtual; index index.html index.htm; } }Pada perintah listen saya memberikan angka 8080, agar VirtualHost jalan pada port 8080. Pada konfigurasi sebelumnya port 80 sudah saya gunakan untuk Halaman web userdir.
  3. Setelah melakukan konfigurasi pada file VirtualHost baru. Buatlah link simbiolis file VirtualHost ke direktori sites-enabled agar file VirtualHost tersebut dapat dieksekusi oleh nginx.$sudo ln -s /etc/nginx/sites-available/virtual-host /etc/nginx/sites-enabled
  4. Kemudian, kita akan membuat direktori baru untuk menyimpan file index.html.$sudo mkdir /var/www/virtual
  5. Masuk ke file index.html pada direktori yang sudah dibuat.$sudo vim /var/www/virtual/index.htmlIsikan perintah dibawah untuk membuah halaman web kita. Isi dari file index.html ini dapat disesuaikan dengan keinginan masing – masing pengguna. Tidak harus mengikuti isi dari file index.html saya.<html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Virtual Host Test by Syawal </div> </body> </html>
  6. Setelah melakukan konfigurasi jangan lupa untuk merestart layanan nginx. Agar layanan nginx dapat berjalan sesuai konfigurasi yang telah dibuat.$sudo systemctl restart nginx
Step 2 – Pengujian atau Pengetesan
  1. Terakhir lakukan pengujian pada web browser client. Ketikkan IP Address atau Domain dari web servernya. Jangan lupa ketikkan port nya juga, jika menggunakan port selain port 80. Kemudian browser akan menampilkan halaman web yang telah kita konfigurasi.

Kesimpulan

Dari materi di atas dapat kita ketahui, penggunaan fitur UserDir dan VirtualHost sangatlah penting dalam konfigurasi web server. Dengan fitur UserDir kita dapat membuat situs web khusus untuk pengguna tertentu dan mereka dapat mengaksesnya menggunakan URL yang sesuai dengan nama mereka ataupun menggunakan URL khusus tertentu. Sedangkan penggunaan VirtualHost, dapat membantu kita dalam menjalankan situs web yang berbeda-beda pada suatu web server saja. Sehingga meminimalkan anggara untuk web server dan juga memberikan efisiensi yang tinggi dalam mengkonfigurasi web server tersebut.

Sekian dari saya, Semoga artikel ini dapat membantu kali. Terima Kasih telah berkunjung~\

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training, klik disini untuk info lengkapnya

Penulis : M. Syawal Saputra