Membuat CDN Sendiri Dengan Nginx

Terkadang kita perlu untuk membuat CDN sendiri dengan nginx. Tidak masalah, itu mudah sekali. Langsung saja kita proses.

Pertama, install nginxnya

yum install nginx

Lalu datang ke /etc/nginx/conf.d dan backup semua konfigurasi

mkdir backups
mv *.conf backups

Setelahnya buat konfigurasi baru dengan menjalankan

vim pass.conf

Buat konfigurasi baru untuk web static content, misalkan sebagai berikut:

    location / {
		proxy_pass admin.ahlikompie.com;
		proxy_set_header Scheme https;
		proxy_set_header  Host  ahlikompie.com;
		proxy_set_header  Path  $uri;
		proxy_set_header  X-Real-IP  $remote_addr;
		proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
		proxy_cache_key $scheme$proxy_host$uri$is_args$args;
		
    }
	
	location ~ \.php$ {
		proxy_pass admin.ahlikompie.com;
		proxy_set_header Scheme https;
		proxy_set_header  Host  ahlikompie.com;
		proxy_set_header  Path  $uri;
		proxy_set_header  X-Real-IP  $remote_addr;
		proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
		proxy_no_cache $cookie_PHPSESSID;
		proxy_cache_bypass $cookie_PHPSESSID;
		proxy_cache_key $scheme$proxy_host$uri$is_args$args;	
		proxy_cache_valid any  0s;			
	}

Setelah itu save konfigurasi di atas, lalu save konfigurasinya

chkconfig nginx on

Lalu restart nginx

service nginx restart

Agar bisa berjalan dengan lancar, Anda harus membuat sebuah folder bernama “cache” di /var/nginx/cache.

mkdir /var/nginx/cache/

Sekarang setiap static content yang tidak tersedia di server nginx akan diambil dari server utama. Untuk mengupdate cache, cukup dengan menghapus folder cachenya. Mudah kan?

Menghapus Cache

Untuk menghapus cache, remove folder temp dan restart nginx

rm -rf /var/cache/nginx/*
service nginx restart

Referensi:

https://metinsaylan.com/6065/create-cdn-server-using-nginx/

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *