Post Pic

Konfigurasi Virtual Host di Nginx

Membuat virtual host di nginx. Menghosting banyak website di nginx. Untuk konfigurasi, kita akan mengikuti cara Debian/Ubuntu, yang memisahkan setiap virtual host dalam satu berkas yg terpisah.


Untuk cara instalasi, silakan ikuti di tulisan sebelumnya: VIDEO: Instalasi Nginx di Ubuntu Hardy

Contoh konfigurasi berkas nginx.conf

Lihat contoh konfigurasi berkas /opt/nginx/conf/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
user www-data;
worker_processes  1;
 
error_log  /var/log/nginx/error.log;
pid        logs/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include         mime.types;
    default_type    application/octet-stream;
    access_log      /var/log/nginx/access.log  combined;
 
    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;
 
    keepalive_timeout 65;
 
    # virtual host default
    #          
    server {
        listen       80;
        server_name  _;  #default
        root         html; 
    }
 
    # vhost1 
    #               
    server {
        listen       80;
        server_name  vhost1.ngadimin.com; 
        access_log   /var/log/nginx/vhost1.ngadimin.com_access.log combined;
	root         /sites/vhost1;
    }
 
    # vhost2 
    #               
    server {
        listen       80;
        server_name  vhost2.ngadimin.com; 
        access_log   /var/log/nginx/vhost2.ngadimin.com_access.log combined;
	root         /sites/vhost2;
    }
}

Untuk membuat virtual host di nginx, Anda perlu membuat blok konfigurasi server { }, seperti tampak pada baris no 22 s.d 46.

Lokasi root folder, didefainisikan pada baris yang dimulai dengan kata root. Seperti pada baris ke 36 di vhost1.

Default Virtual Host

Untuk membuat virtual host default, yaitu virtual host yang menangani semua request yang tidak menyertakan host header atau alamat yang belum dikonfigurasi virtual hostnya, Anda bisa membuat konfigurasi seperti pada baris ke 22 s.d 28.

Sebagai catatan, konfigurasi untuk default virtual host pada versi sebelum 0.6.x,

1
2
3
server {
  server_name _ *;
}

Kemudian di versi 0.6.x konfigurasinya berubah menjadi seperti di bawah ini:

1
2
3
server {
  server_name _;
}

Sejak versi 0.7.x, konfigurasi server_name untuk default virtual host, bisa dikosongkan seperti pada contoh di bawah ini:

1
2
3
server {
  server_name "";
}

Konfigurasi Virtual Host gaya Debian

Pada paket yang disertakan di debian atau ubuntu, konfigurasi virtual host biasanya dipisah-pisah. Satu virtual host satu berkas. Kita akan mengikuti cara itu, untuk memudahkan dalam mengadministrasi konfigurasi virtual host di server kita.

Buat dua direktori baru

Direktori pertama, tempat konfigurasi virtual host disimpan

sudo mkdir /opt/nginx/conf/sites-available

Direktori kedua, tempat konfigurasi virtual host diaktifkan. Caranya dengan melakukan soft link ke berkas konfigurasi virtual host.

sudo mkdir /opt/nginx/conf/sites-enabled

Sekarang kita akan memisahkan konfigurasi virtual host di atas. Untuk vhost1.ngadimin.com misalnya, buat berkas baru di /opt/nginx/conf/sites-available/vhost1.ngadimin.com.

1
2
3
4
5
6
server {
    listen       80;
    server_name  vhost1.ngadimin.com; 
    access_log   /var/log/nginx/vhost1.ngadimin.com_access.log combined;
    root         /sites/vhost1;
}

Dan sekarang Anda harus mengubah berkas nginx.conf, menjadi seperti di bawah ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 ...
# dipotong...
 
http {
 
    # ...
    # dipotong...
 
    server {
        listen       80;
        server_name  _;  #default
        root         html;
    }
 
    # konfigurasi virtual host
    include sites-enabled/*;
}

Perhatikan baris ke 16, itu adalah konfigurasi yang menyertakan berkas virtual host di berkas terpisah. Dan untuk mengaktifkannya, Anda harus membuat soft link dari berkas di folder sites-available ke folder sites-enabled

cd /opt/nginx/conf/sites-enabled
sudo ln -s /opt/nginx/conf/sites-available/vhost1.ngadimin.com .

Setelah dibuat soft link, sekarang Anda tinggal restart nginx.

sudo /etc/init.d/nginx restart

Membangun Web Server dengan Nginx 


Satu Komentar

31 March 2010

hallo kang,
mau bertanya ni kang ?

kalo untuk nginx sebagai reverse dan http proxy gemana yah ? just info saya sedang mencoba install sebuah server dengan virtualmin auto installer, saya ingin mencoba untuk handle file2 static di handle oleh nginx dan file2 dinamis menggunakan apache.

ada saran untuk kondisi seperti ini ? oiya mesin yang saya oprek Debian dan CentOS

hatur nuhun pencerahannya