Cara Install Apache2 dan NginX sebagai Reserve Proxy

Cara Install Apache2 dan NginX sebagai Reserve Proxy – NGINX sangat bagus dalam menyajikan file statis, menggunakan lebih sedikit sumber daya daripada Apache.
Di sisi lain, Apache menawarkan lebih banyak fitur.

Dimungkinkan untuk menjalankan keduanya, sehingga NGINX menyajikan file statis (secara teknis sebagai reserve proxy) dan Apache menjalankan skrip PHP.

Apa itu Reserve Proxy?

Ada beberapa alasan untuk menginstal Reserve Proxy. Salah satu alasan utamanya adalah privasi.

Jika kita memiliki beberapa server, Reserve Proxy dapat membantu menyeimbangkan beban antar server dan meningkatkan kinerja. Karena Reserve Proxy menyediakan satu titik kontak untuk klien, proxy ini dapat memusatkan pencatatan dan pelaporan di beberapa server.

NGINX akan menjadi server web yang dapat dilihat publik, sedangkan Apache hanya akan terlihat oleh NGINX di port 8080.

Dalam tutorial kali kita akan belajar membuat Apache2 untuk menjalankan file PHP dan NginX bekerja menyajikan file statis seperti JPEG, GIF, PNG, dll diluar file PHP, pada Ubuntu 20.04 virtual private server ataupun AWS EC2.

Apa saja yang diperlukan untuk Install Apache2 dan Nginx?

  1. VPS atau VM disini saya menggunakan AWS EC2 Free Tier
  2. Ubuntu Server 20.04
  3. SSH & User dengan privilege perintah sudo (bisa menggunakan Termux atau Admin Hands yang sudah saya review)

Sebelum memulai instalasi, seperti biasa kita membutuhkan akses ke server via SSH. Setelah login ke server via SSH, pastikan dan biasakan untuk melakukan update package index. Agar semua package yang terinstall diperbarui ke versi yang baru.

sudo apt update && sudo apt upgrade

Install NGINX

Install Apache2 dan NginX

Kita akan menginstall NginX dan akses directory server pada path: /var/www/judisweb.com/public_html

sudo apt install nginx

Note: ini adalah cara paling mudah untuk meng-install Nginx di Ubuntu, tetapi mungkin bukan versi rilis terbaru.

Install Nginx dari Repository resmi (opsional)

Untuk install via Nginx Official bisa membuka link ini sebagai sumber referensi.

sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Setelah mendownload key, edit file /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Tambahkan line ini:

deb https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx

<CODENAME> merupakan codename dari rilis Ubuntu, misal Ubuntu 14.04 (“trusty”) / Ubuntu 20.04 (“focal”)

Konfigurasi Nginx

Kemudian kita akan menghapus default configuration pada NGINX website:

sudo rm /etc/nginx/sites-enabled/default

Menambahkan situs/website ke NGINX

sudo nano /etc/nginx/sites-available/judisweb.com

Isikan konfigurasi seperti dibawah ini untuk website judisweb.com

server {
    listen 80;
    root /var/www/judisweb.com/public_html/;
    index index.php index.html index.htm;
    server_name
        www.judisweb.com
        judisweb.com
    ;
    location ~ /\.ht {
        deny all;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080$request_uri;
        proxy_read_timeout 600;
    }
}

Selanjutnya kita aktifkan situs NGINX ini:

sudo ln -s /etc/nginx/sites-available/judisweb.com /etc/nginx/sites-enabled/judisweb.com

Install Apache2

Install Apache2 seperti pada umumnya pada Ubuntu:

sudo apt install -y apache2

Selama instalasi mungkin terjadi kesalahan yang menyatakan bahwa apache tidak dapat dijalankan: abaikan saja (itu karena Apache mencoba untuk mulai menggunakan port 80, yang sudah diambil oleh NGINX) karena kita akan menggunakan port 8080 seperti yang saya jelaskan diawal artikel ini.

Kita nonaktifkan situs web Apache default:

sudo a2dissite 000-default

Selanjutnya kita merubah port Apache menjadi 8080:

sudo nano /etc/apache2/ports.conf

Masukkan konfigurasi port Apache seperti dibawah ini:

Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/judisweb.com/public_html
	ErrorLog ${APACHE_LOG_DIR}/judisweb.com.error.log
	CustomLog ${APACHE_LOG_DIR}/judisweb.com.access.log combined
</VirtualHost>
<Directory "/var/www/judisweb.com/public_html">
        Options +FollowSymLinks -SymLinksIfOwnerMatch
        AllowOverride All
</Directory>

Terakhir kita aktifkan web judisweb.com

sudo a2ensite judisweb.com

Untuk mengaktifkan permalink apache rewrite (opsional):

sudo a2enmod rewrite

Restart Apache2 dan NginX untuk memuat ulang konfigurasi:

sudo service apache2 restart
sudo service nginx restart

Untuk percobaan apakah php file kita dijalankan oleh Apache2, maka bisa mencoba dengan membuat file php untuk menjalankan fungsi php_info().

Untuk percobaan selanjutnya apakah NginX bekerja berjalan pada file statis saja dengan menggunakan perintah ini:

curl -I -X POST "http://<file_konten_statis>"

Note: file konten statis seperti JPG, PNG, HTML

HTTP/1.1 200 OK                                               
Server: nginx/1.18.0 (Ubuntu)                                 
Date: Sat, 23 Oct 2021 15:49:50 GMT
Content-Type: text/html                                       
Content-Length: 128                                           
Connection: keep-alive                                        
Last-Modified: Fri, 22 Oct 2021 06:01:30 GMT                  
ETag: "80-5ceeabe149a9c"                                      
Accept-Ranges: bytes                                          
Vary: Accept-Encoding

Demikian tutorial Cara Install Apache2 dan NginX sebagai Reserve Proxy, dimana Apache2 hanya menjalankan PHP skrip, dan file lain bersifat statis dijalankan oleh NGINX.

Tinggalkan komentar