Rumahweb Journal
reverse proxy nginx rumahweb

Cara Install Nginx sebagai Reverse Proxy Apache di Linux

Proxy adalah sebuah sistem dimana request dari browser untuk menampilkan website tidak diresponse secara langsung oleh web server, melainkan melalui sebuah proxy server sebagai perantaranya. Pada panduan ini, kami akan memberikan panduan cara install Nginx sebagai reverse proxy apache yang bisa Anda install di VPS.

Untuk memudahkan Anda dalam memahami konteks panduan ini, kami akan menjelaskan terlebih dahulu apa yang dimaksud Nginx serta reverse proxy. Berikut informasi selengkapnya.

Apa itu Nginx?

Nginx adalah software open source yang dapat digunakan sebagai web server, load balancer, media streaming, reverse proxy dan banyak lagi.

Nginx dikembangkan oleh perusahaan Nginx, Inc. dari Rusia pada tahun 2004 yang tersedia untuk GNU/Linux, BSD, DARWIN, Windows, macOS, dan Unix.

Nginx dirancang sebagai webserver yang memiliki stabilitas dan kinerja server yang tinggi, serta memiliki kemampuan sebagai HTTP load balancer dan reverse proxy.

Apa itu Reverse Proxy?

Reverse Proxy adalah sistem proxy yang digunakan untuk meneruskan/bypass permintaan client dari web server frontend ke web server utama backend. Reverse proxy sebagai jembatan diantara server frontend dan backend, dan bertugas untuk menjamin pertukaran data dan request berjalan secara lancar.

Pindah Hosting ke Rumahweb Gratis

Selain pertukaran data, Reverse Proxy juga memberikan keamanan dan kompresi, sehingga server menjadi lebih ringan dalam memenuhi banyak permintaan sekaligus.

Reverse Proxy biasanya diterapkan di webserver apache dan Nginx. Nginx dan Apache dapat digunakan secara bersamaan, dimana Nginx bertindak sebagai reverse proxy/server frontend yang menerima permintaan dari client dan meneruskannya ke web server backend seperti Apache.

Kemudian Apache mengirimkan kembali respon yang diminta oleh Nginx untuk dikirimkan kembali ke client. Hal ini dilakukan agar 2 web server ini bisa saling terhubung.

Konfigurasi Reverse Proxy

Pada panduan ini, kami menggunakan layanan VPS KVM paket M dengan OS Linux Ubuntu 20.04. Namun panduan ini juga bisa digunakan untuk Ubuntu versi 18.04.

Berikut cara membuat reverse proxy apache melalui Nginx.

Step 1. Install Apache 

  1. Install apache webserver dan php-fpm.
 apt update
 apt install apache2 php-fpm -y  
  1. Install mod FastCGI.
# wget https://mirrors.edge.kernel.org/ubuntu/pool/multiverse/liba/libapache-mod-fastcgi/libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb

# dpkg -i libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb
  1. Mengubah port backend apache ke port selain 80. Pada panduan ini, kami akan menggunakan port 8080.
  • Ubah nama dan konfigurasi vhost bawaan apache.
mv /etc/apache2/ports.conf /etc/apache2/ports.conf.default
  • Mengarahkan port apache ke 8080.
echo "Listen 8080" | tee /etc/apache2/ports.conf
  •  Menonaktifkan vhost apache default.
a2dissite 000-default
  1. Setelah mengatur port apache ke 8080, kita akan membuat konfigurasi untuk Virtualhost apache yang berjalan di port 8080.
  •  Membuat file konfigurasi vhost.
 nano /etc/apache2/sites-available/001-default.conf
  •  Input kongifurasi virtualhost.
     <VirtualHost *:8080>

    ServerAdmin rumahweb@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

      </VirtualHost>
  •   Aktifkan virtualhost lalu restart apache service.
a2ensite 001-default  
systemctl restart apache2  
  • `Pastikan untuk virtualhost apache berjalan di port 8080.
Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      870/systemd-resolve 

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1065/sshd           

tcp6       0      0 :::8080                 :::*                    LISTEN      8774/apache2        

tcp6       0      0 :::22                   :::*                    LISTEN      1065/sshd

Step 2. Config Apache menggunakan mod_fastcgi

 1. Aktifkan mod FastCGI.

a2enmod actions

 2. Ubah file bawaan fastcgi.

mv /etc/apache2/mods-enabled/fastcgi.conf /etc/apache2/mods-enabled/fastcgi.conf.default 

 3. Membuat file konfigurasi baru untuk fastcgi.

nano /etc/apache2/mods-enabled/fastcgi.conf

Inputkan konfigurasi fastcgi sesuai versi php

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiIpcDir /var/lib/apache2/fastcgi
  AddType application/x-httpd-fastphp .php
  Action application/x-httpd-fastphp /php-fcgi
  Alias /php-fcgi /usr/lib/cgi-bin/php-fcgi
  FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php7.2-fpm.sock -pass-header Authorization
  <Directory /usr/lib/cgi-bin>
    Require all granted
  </Directory>
</IfModule> 

 4. Restart service apache webserver

systemctl restart apache2

Step 3. Verifikasi Fastcgi melalui phpinfo

  1. Buat file phpinfo dengan nama info.php.

 echo "<?php phpinfo(); ?>" | tee /var/www/html/info.php

  2. Cek melalui browser ke http://IP_SERVER:8080/info.php, cek Server API, SERVER_PORT, dan SERVER_SOFTWARE.

php fpm
port apache sebagai reverse proxy

Membuat Virtualhost untuk domain

Langkah selanjutnya adalah membuat virtual host untuk domain. Kali ini kami akan menggunakan subdomain backend.dikanetwork.web.id sebagai contoh.

 1. Membuat folder document root dan file index.

mkdir /var/www/backend.dikanetwork.web.id

echo "<h1>halo ini backend</h1>" | tee /var/www/backend.dikanetwork.web.id/index.html

 2. Membuat Konfigurasi virtualhost untuk domain.

  • Input File konfigurasi apache
/etc/apache2/sites-available/backend.dikanetwork.web.id.conf 
<VirtualHost *:8080>

   ServerName backend.dikanetwork.web.id

   DocumentRoot /var/www/backend.dikanetwork.web.id

  <Directory /var/www/backend.dikanetwork.web.id>

    Options Indexes FollowSymLinks MultiViews

    AllowOverride All

    Require all granted

  </Directory>

    ErrorLog /var/log/apache2/backend.dikanetwork.web.id_error.log

   CustomLog /var/log/apache2/backend.dikanetwork.web.id_access.log combined

</VirtualHost>
  • Aktifkan virtualhost.
a2ensite backend.dikanetwork.web.id
  • Restart service Apache .
systemctl restart apache2   
  • Akses menggunakan http://backend.dikanetwork.web.id:8080
pengujian apache sebagai backend nginx

Baca juga artikel: Free Proxy Video Player Terbaik [Update 2022]

Setting Nginx Sebagai Reverse Proxy

Langkah selanjutnya, kita akan melakukan setting Nginx sebagai reverse Proxy apache. Berikut langkah-langkahnya.

Step 1. Setting Nginx sebagai reverse proxy

1. Install Nginx dengan perintah berikut.

apt install nginx -y 

2. Membuat block virtualhost untuk Nginx.

nano /etc/nginx/conf.d/backend.dikanetwork.web.id.conf
server {

    listen 80;

    server_name backend.dikanetwork.web.id;

    root /var/www/backend.dikanetwork.web.id;

    index index.php index.htm index.html;

 location / {

   try_files $uri $uri/ /index.php?$query_string;

   }

   location ~ \.php$ {

  proxy_pass http://IP SERVER:8080;

  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 X-Forwarded-Proto $scheme;

  }

  location ~ /\.ht {

   deny all;

   }

    access_log /var/log/nginx/backend.dikanetwork.web.id_access.log;

     error_log /var/log/nginx/backend.dikanetwork.web.id_error.log warn;    

  }

3. Restart Nginx

systemctl restart nginx

systemctl status nginx

4. Verifikasi Nginx reverse proxy dengan mengakses http://backend.dikanetwork.web.id/info.php

pengujian akses phpinfo dengan reverse proxy apache

Step 2. Config mod_rpaf

1. install rpaf.

apt install unzip build-essential apache2-dev -y 

2. download Rpaf dari github.

wget https://github.com/gnif/mod_rpaf/archive/stable.zip -O mod_rpaf.zip    

unzip mod_rpaf.zip  

cd mod_rpaf-stable

make

make install

3. Membuat file rpaf dan input rpaf load.

nano /etc/apache2/mods-available/rpaf.load

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so

4. Membuat file konfigurasi rpaf.conf

nano /etc/apache2/mods-available/rpaf.conf

5. Ganti RPAF_ProxyIPs dengan ip server.

<IfModule mod_rpaf.c>
    RPAF_Enable             On
    RPAF_Header             X-Real-Ip
    RPAF_ProxyIPs           IP Server
    RPAF_SetHostName        On
    RPAF_SetHTTPS           On
    RPAF_SetPort            On
</IfModule> 

6. Aktifkan rpaf dan restart apache

a2enmod rpaf

systemctl restart apache2

7. Akses http://backend.dikanetwork.web.id/info.php dan cek REMOTE_ADDR, harus berisi Public IP address dari visitor.

ip visitor setelah terkonfigurasi mod rpaf

Step 3. Install SSL

Secure Socket Layer atau yang disingkat menjadi SSL adalah lapisan keamanan terenkripsi yang berfungsi untuk mengamankan transaksi data antara web browser dan server.

Anda bisa menggunakan SSL gratis maupun SSL berbayar. Namun pada panduan ini, kami akan mencontohkan install SSL Let’s encrypt yang dapat Anda gunakan secara gratis. Berikut langkah-langkah instalasinya.

1. Install ssl certbot.

cd

add-apt-repository ppa:certbot/certbot

apt install python-certbot-nginx -y

2. Install ssl certbot untuk backend.dikanetwork.web.id.

certbot --nginx -d backend.dikanetwork.web.id

3. Inputkan email dan konfirmasi installasi ssl, maka ssl akan teirnstall otomatis.

installasi ssl otomatis menggunakan certbot

Sampai tahap ini, kita telah berhasil melakukan konfigurasi Nginx sebagai reverse proxy.

Demikian panduan kami tentang cara install Nginx sebagai reverse proxy apache di VPS Linux, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 4.9 / 5. Vote count: 33

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

VPS Alibaba

Andika Dwi Setyawan

Dika is a System Administrator, passionate about Linux, Networking, Cyber security and much love with Arista.