Konfigurasi Reverse Proxy Nginx dan Apache
0 people liked this article
A. Pendahuluan
Reverse proxy adalah server yang berada di depan web server yang bertugas meneruskan request client(misalnya web browser) ke web server tersebut. Reverse proxy biasanya diterapkan untuk membantu meningkatkan security, speed dan realibility.
Pada artikel kali ini kita akan mencoba membangun reverse proxy menggunakan nginx dan apache dengan multi node, artinya reverse proxy dan web server akan berada di server yang berbeda.
B. Konfigurasi
- Instance Reverse Proxy
- IP Public 103.93.56.xxx
- OS Ubuntu 20.04
- Instance Web Server
- IP Public 103.93.58.xxx
- OS Ubuntu 20.04
Pastikan anda telah memiliki 2 instance/vm yang akan digunakan sebagai reverse proxy dan web server. Pada artikel ini kmai hanya akan membahas cara melakukan setup reverse proxy dengan nginx & apache saja, artinya kami anggap anda telah memiliki website yang sudah di deploy dan siap di proxy kan. Contoh nya disini kami akan menggunakan website wordpress yang di deploy ke VM yang telah terinstall LEMP Stack https://kb.biznetgio.com/id_ID/neo-web-hosting/instalasi-lemp-stack-di-ubuntu-2004-lts
Konfigurasi Reverse Proxy Nginx
Pertama kita akan mencoba melakukan setup reverse proxy dengan Nginx, jadi pastikan system anda telah di update terlebih dahulu, jalankan command
$ sudo apt update
$ sudo apt upgrade –y
Jika sudah selesai update, selanjutnya install nginx dan psatikan setelah di install, nginx nya telah berjalan
$ sudo apt install nginx –y
$ sudo systemctl start nginx
$ systemctl status nginx
Pastikan status nginx nya sudah running seperti berikut
Selanjutnya buat server block yang akan digunakan sebagai reverse proxy yang mengarah pada masing-masing website
$ sudo vim /etc/nginx/conf.d/reverse-proxy.conf
Kemudian masukkan konfigurasi berikut :
server {
listen 80;
server_name nginx.domain-anda;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "";
proxy_pass http://103.93.58.xxx;
}
}
Pada konfigurasi diatas, yang perlu di perhatikan adalah bagian server_name dan proxy_pass yang dimana
server_name digunakan untuk mendefinisikan domain atau sub domain yang anda gunakan, dan pastikan domain sudah di pointing ke A record IP Instance anda
proxy_pass digunakan untuk mendefinisikan dimana web server nya berada, pada bagian ini anda dapat mengisinya dengan IP/Domain dan bisa di tambahkan port juga, pada contoh kali ini web server kami berjalan di port 80, oleh karena itu kami tidak perlu mendefinisikan port nya karena secara default request akan menggunakan port 80
Simpan konfigurasi file nya dan cek apakah terdapat error pada konfigurasi yang sudah di tambahkan
$ sudo nginx –t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Pastikan output nya sudah OK dan tidak terdapat error seperti diatas. Jika sudah tidak terdapat error, lakukan restart pada nginx nya untuk menerapkan konfigurasi yang sudah di tambahkan sebelumnya
$ sudo systemctl restart nginx
Selanjutnya akhes subdomain atau domain yang sudah di tambahkan pada server_name sebelumnya, dan pastikan tampilan nya sama dengan yang seharus nya di tampilkan oleh web server, dalam kasus ini karena pada web server kami menjalankan wordpress maka pastikan wordpress nya dapat tampil.
Bisa dilihat jika kita akses saat ini wordpress nya sudah tampil, dan perhatikan pada remote address disana yang tertera adalah IP Reverse Proxy, bukan IP Web Server.
Konfigurasi Reverse Proxy Apache
Sebelumnya kita telah mencoba reverse proxy dengan Nginx, selanjutnya kita akan coba menggunakan Apache. Sama seperti sebelumnya pastikan telah melakukan update pada Instance anda
$ sudo apt update
$ sudo apt upgrade –y
Kemudian lakukan installasi apache dengan command : $ sudo apt install apache2 –y
Jika sudah selesai melakukan installasi, anda perlu mengaktifkan beberapa module agar apache bisa digunakan sebagai reverse proxy
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_balancer
$ sudo service apache2 restart
Selanjutnya buat virtualhost yang akan digunakan untuk menyimpan konfigurasi reverse proxy nantinya, jalankan command : $ vim /etec/apache2/ sites-available/reverse-proxy.conf
Dan masukkan konfigurasi berikut :
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
AllowEncodedSlashes NoDecode
ServerName apache.task.my.id
ProxyPass / http://103.93.58.xxx/
ProxyPassReverse / http://103.93.58.xxx/
</VirtualHost>
Sama seperti sebelumnya, masukkan nama domain anda pada bagian ServerName, dan pada bagian ProxyPass & ProxyPassReverse isikan dengan IP atau domain tempat web server anda berada.
Selanjutnya enable virtualhost yang sudah dibuat dengan command : $ sudo a2ensite reverse-proxy dan terakhir restart service apache : $ sudo systemctl restart apache2
Lakukan verifikasi dengan mengunjungi domain yang sudah di masukkan ke virtualhost sebelumnya dan pastikan wordpress dapat tampil tanpa kendala
Selamat! Anda sudah bisa Konfigurasi Reverse Proxy Nginx dan Apache. Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
8 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
3 people say this guide was helpful
-
Instalasi DNS Server Menggunakan Service Bind di CentOS 7
4 people say this guide was helpful
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
5 people say this guide was helpful