Cara membuat Server Block Nginx di Ubuntu 18.04
Tags: nginx, linux, indonesia, ubuntu
Published: 2021-03-10 15:39:17

Nginx Server Block memungkinkan dalam sebuah server berjalan beberapa website sekaligus. Dengan Server Block, semua website dapat dikonfigurasi mulai dari memiliki direktori root dokumen sendiri, penggunaan sertifikat SSL untuk masing-masing website, dan masih banyak lagi.

Tutorial ini akan menunjukkan langkah dan cara membuat server block Nginx di Ubuntu 18.04 yang mirip dengan virtual host (pada Apache).

## Persiapan

Pastikan beberapa hal berikut ini sudah dilakukan lebih dulu.

- Domain sudah diset mengarah ke IP server. Artikel ini akan menggunakan domain `contoh.com`
- Nginx sudah terpasang. Jika belum, silahkan ikuti langkahnya pada artikel berikut.

{% post https://dev.to/erolj/cara-install-nginx-di-ubuntu-18-04-43k2 %}

## Struktur Direktori

Berikut ini adalah struktur direktori yang akan digunakan pada artikel ini.
```
/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html
```

Langkah pertama adalah membuat direktori yang akan menjadi tempat menaruh semua file website nantinya. Jalankan perintah berikut.
```
sudo mkdir -p /var/www/contoh.com/public_html
```

Selanjutnya buat file `index.html` yang akan menjadi halaman utama dari domain `contoh.com` dengan menjalankan perintah berikut.
```
vi /var/www/example.com/public_html/index.html
```

Pada editor teks yang terbuka, salin kode dibawah ini atau silahkan gunakan kode milik sendiri.
```
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>
```

Simpan dan tutup editor teksnya, lalu eksekusi perintah berikut.
```
sudo chown -R www-data: /var/www/contoh.com
```

## Membuat Server Block

Secara default, file konfigurasi server block dari Nginx akan disimpan di direktori `/etc/nginx/sites-available`, yang kemudian akan diaktifkan lewat symbolic link (symlink) ke direktori `/etc/nginx/sites-enabled/`

Jalankan perintah berikut untuk membuat server block buat `contoh.com`
```
vi /etc/nginx/sites-available/contoh.com
```

Untuk editor teks yang terbuka, salin kode dibawah ini.
```
server {
    listen 80;
    listen [::]:80;

    root /var/www/contoh.com/public_html;

    index index.html;

    server_name contoh.com www.contoh.com;

    access_log /var/log/nginx/contoh.com.access.log;
    error_log /var/log/nginx/contoh.com.error.log;

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

```

Nama konfigurasi file bisa apa saja, tetapi sangat disarankan untuk menggunakan nama domain untuk server block tersebut.

Kemudian untuk mengaktifkan konfigurasi server block diatas, jalankan perintah berikut.
```
sudo ln -s /etc/nginx/sites-available/contoh.com /etc/nginx/sites-enabled/
```

Selanjutnya cek konfigurasi Nginx jika terdapat error.
```
sudo nginx -t
```

Outputnya akan terlihat seperti berikut.
```
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```

Langkah terakhir adalah dengan melakukan restart Nginx.
```
sudo systemctl restart nginx
```

Silahkan cek server block yang baru dibuat berfungsi dengan baik. Caranya dengan mengakses via browser alamat `http://contoh.com`

## Langkah selanjutnya

{% post https://dev.to/erolj/cara-proteksi-nginx-dengan-let-s-encrypt-di-ubuntu-18-04-1pnh %}