Panduan Membuat Virtual Host / Server Block di Nginx untuk Sub Domain

Pada suatu kondisi anda sebagai sistem administrator tentu diminta untuk membuat sebuah aplikasi itu langsung bisa diakses dengan sub domain, dalam arti aplikasi itu tidak diakses dengan format:

http://lukmanlab.com/web1 atau http://lukmanlab.com/web2

Namun dapat diakses dengan hanya sub domain, jadi dari cara mengakses by folder web seperti diatas, anda dapat mengaksesnya seperti berikut:

http://web1.lukmanlab.com dan http://web2.lukmanlab.com

Nah, jika kebutuhanya seperti ini atau anda diminta untuk membuat seperti ini maka anda perlu belajar yang namanya virtual hosting, pada web server nginx istilah virtual host ini disebut “server block“, sama fungsinya tapi beda istilah.

Cara Konfigurasi Server Block (Virtual Host) Nginx di Ubuntu Server 18.04:

Sebelum anda konfig server block di nginx silahkan ikuti artikel Tutorial Membangun Web Server dengan Nginx + PHP-FPM terlebih dahulu, baru setelah siap nginx-nya anda dapat membuat server block untuk sub domain anda.

Konfigurasi server block/virtual host nginx berada di /etc/nginx/sites-available/ dan setelah dikonfigurasi nanti konfigurasinya kita link kan ke /etc/nginx/sites-enabled/, sebelum di link-kan ke “sites-enabled” konfigurasi server block/virtual host tidak akan berjalan.

File konfig server block nginx yang sudah ada namanya adalah “default”, file ini bisa kita pakai untuk mempermudah dan mempercepat konfigurasi server block nginx. Jadi kita tinggal salin saja.

1. Copy file “default” ke nama file baru, disini saya pakai web1.lukmanlab.com.conf

Biasakan membuat file konfig sesuai kebutuhan sub domain (nama). Disini admin akan membuat sub domain web1.lukmanlab.com dan file konfig server block admin beri nama web1.lukmanlab.com.conf.

– LukmanLAB
# cd /etc/nginx/sites-available
# cp default web1.lukmanlab.com.conf

2. Edit file web1.lukmanlab.com.conf

# nano web1.lukmanlab.com.conf

Edit saja bagian “root” dan “server_name”, sesuaikan dengan sub domain anda.

server {
        listen 80;
        root /var/www/web1.lukmanlab.com/;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name web1.lukmanlab.com;

        location / {
                try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

3. Buat Directory sesuai dengan directory yang kita inginkan di bagian “root” sebelumnya. Ubah hak milik user:group nya jadi www-data:www-data.

# mkdir /var/www/web1.lukmanlab.com
# chown -R www-data:www-data /var/www/web1.lukmanlab.com/

4. Aktifkan file konfig server block/virtual host nginx tadi.

# cd /etc/nginx/sites-enabled
# ln -s /etc/nginx/sites-available/web1.lukmanlab.com.conf ./

5. Check file konfig server block, sebelum restart services nginx. Pastikan syntax is ok.

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

# systemctl restart nginx

Konfigurasi server block di nginx sudah selesai, silahkan isi folder /var/www/web1.lukmanlab.com sesuai keinginan anda. Terimakasih….

About Ahmad Lukman Hakim 73 Articles
Admin LUKMANLAB, Network Engineer, System Administrator.