Skip to main content

Konfigurasi Map Module Nginx (Management User Agent)


Konfigurasi Map Module Nginx (Management User Agent) - Pada kesempatan kali ini konfigurasi map module pada nginx. Map module nginx memungkinkan kita untuk melaksanakan pemetaan variable sehingga respond sanggup diubahsuaikan tergantung dari nilai variable tersebut. 

Masih dengan file konfigurasi sebelumnya,  bagi teman yang terlewat sanggup membaca link di bawah ini.
Kongiruasi Rewrite, Return dan Try_files pada Nginx
Install Nginx Source di CentOS 7
Secara default ngx_http_map_module sudah include dengan pada installasi nginx, sehingga kita tidak perlu melaksanakan recompile nginx. Pada pola kali ini kita akan menciptakan pemetaan untuk memilih url menurut user agent. Selain memetakan user agent, http map ini sanggup juga dipakai untuk melaksanakan pemetaan geoip, mapping url ataupun yang lainnya sesuai dengan kebutuhan.

Nginx HTTP Map Module

Sabelum kita menciptakan sebuah map file, buat terlebih dahulu m.html untuk user agent mobile dan apps.html untuk aplikasi pada direktory /opt/nginx/html. Untuk file *.html contentnya silahkan sesuaikan masing-masing.

Index File
touch /opt/nginx/html/m.html
touch /opt/nginx/html/apps.html
Map File
mkdir -p /opt/nginx/conf/map
nano map/dimzrio.conf
Content:
map $http_user_agent $user_client {
*(curl|python) "apps";
*(android|mobile) "mobile";
˜*ip(hone|od) "mobile";
*(postman|insomnia) "disallow";
}
File map di atas akan mengelompokan menurut user agent, sebagai pola kalau user agent android maka akan dikatagorikan sebagai mobile. Jika client mengakses dimzrio.com dari aplikasi curl akan di arahkan ke apps.dimzrio.com sedangkan kalau di saluran melalui aplikasi tak bisa tidur akan di tolak. Selanjutnya tambahkan konfigurasi map pada vhost.
nano /opt/nginx/conf/vhosts/dimzrio-com.conf
Content:
include map/*.conf;

server {
........
if ($user_client = "apps" ){
return 301 https://apps.dimzrio.com$request_uri;
}

if ($user_client = "disallow" ){
return 404;
}

if ($user_client = "mobile" ){
return 301 https://m.dimzrio.com$request_uri;
}
........
Note : File map config harus diletakan di luar server block sedangkan untuk logical match dari harus dalam server block. Pada pola di atas aku meletakannya sesudah server name.

Buat sub domain apps.dimzrio.com dan m.dimzrio.com.

Apps Conf
nano /opt/nginx/conf/vhosts/app-dimzrio-com.conf
Content:
server {
listen 80;
listen 443 ssl http2;
access_log /var/log/nginx/apps-dimzrio-access.log main;
error_log /var/log/nginx/apps-dimzrio-error.log;
server_name apps.dimzrio.com;
......
location / {
root /opt/nginx/html;
index apps.html;
}
...... selanjutnya samakan location block dengan dimzrio.conf ......
}
 Mobile Conf
nano /opt/nginx/conf/vhosts/m-dimzrio-com.conf 
Content:
server {
listen 80;
listen 443 ssl http2;
access_log /var/log/nginx/m-dimzrio-access.log main;
error_log /var/log/nginx/m-dimzrio-error.log;
server_name m.dimzrio.com;
......
location / {
root /opt/nginx/html;
index m.html;
}
...... selanjutnya samakan location block dengan dimzrio.conf ......
}
Note: Untuk lebih mudahnya teman sanggup copy saja dari dimzrio.conf dan sesuaikan konfigurasi ibarat di atas.  Atau letakan ibarat gambar di bawah ini.

Output :

Save dan Restart nginx.
systemctl restart nginx

Uji Coba

Curl

Curl dengan User Agent Android


Insomnia


Karena sudah ditentukan pada file konfigurasi, bahwa kalau client memakai aplikasi tak bisa tidur maka akan mengembalikan error 404.

Demikian tutorial nginx kali ini mengenai konfigurasi map module nginx (management user agent). Semoga bermanfaat bagi kita semua dan selamat mencoba.!!!

Sumber http://www.dimasrio.com/
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar