Konfigurasi Nginx sebagai Reverse Proxy untuk Web Server Apache
Konfigurasi Nginx sebagai Reverse Proxy Apache2. Oke kali ini saya akan sharing sedikit mengenai bagaimana cara menggunakan Nginx sebagai reverse proxy untuk Apache2. Jadi nantinya Nginx akan bertindak sebagai frontend dan Apache2 sebagai backendnya.
Untuk tutorial ini saya menggunakan Ubuntu 18.04 LTS.
Install Apache2
Pertama kita install Apache2 dan PHP terlebih dahulu.
Ubah port default web server Apache2 yang sebelumnya ada di port 80 ke port lain. Untuk memudahkan, kita gunakan saja port 8080.
Selanjutnya kita buat virtualhost untuk domain kita. Disini sebagai contoh saya menggunakan domain dengan nama linuxsec.local.
sudo nano /etc/apache2/sites-available/linuxsec.conf
Dan berikut konfigurasi sederhananya:
Sekarang aktifkan virtualhost Apache2 dengan perintah
Cek dengan perintah berikut untuk memastikan tidak ada error di konfigurasi Apache2
Install Nginx
Selanjutnya adalah proses instalasi Nginx sebagai reverse proxy
Enable serverblock dengan perintah
sudo ln -s /etc/nginx/sites-available/linuxsec.conf /etc/nginx/sites-enabled/
Cek konfigurasinya apakah ada yang error
Keduanya berjalan bersamaan
Kalian juga bisa pasang PHP Info untuk melihat proses PHP yang dijalankan di web server.
Terlihat kalau proses PHP nya dijalankan oleh Apache yang berada di backend.
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
Untuk tutorial ini saya menggunakan Ubuntu 18.04 LTS.
Install Apache2
Pertama kita install Apache2 dan PHP terlebih dahulu.
sudo apt update
sudo apt install apache2
sudo apt-get install php libapache2-mod-php php-mysql libapache2-mod-rpafSelanjutnya adalah mengkonfigurasi Apache2.
Ubah port default web server Apache2 yang sebelumnya ada di port 80 ke port lain. Untuk memudahkan, kita gunakan saja port 8080.
sudo nano /etc/apache2/ports.confCek baris Listen, dan ubah nilainya ke 8080.
Selanjutnya kita buat virtualhost untuk domain kita. Disini sebagai contoh saya menggunakan domain dengan nama linuxsec.local.
sudo nano /etc/apache2/sites-available/linuxsec.conf
Dan berikut konfigurasi sederhananya:
Tentu saja diatas adalah contoh konfigurasi virtualhost sederhana. Untuk konfigurasi lain bisa kalian sesuaikan sendiri.ServerName linuxsec.local ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Sekarang aktifkan virtualhost Apache2 dengan perintah
sudo a2ensite linuxsec.confSesuaikan sendiri dengan nama file konfigurasi yang kalian buat.
Cek dengan perintah berikut untuk memastikan tidak ada error di konfigurasi Apache2
sudo apachectl configtestJika semuanya oke, restart Apache2 dengan perintah
sudo systemctl reload apache2Sekarang web server Apache2 sudah berjalan di port 8080.
Install Nginx
Selanjutnya adalah proses instalasi Nginx sebagai reverse proxy
sudo apt install nginxSelanjutnya buat sebuah serverblock untuk Nginx
sudo nano /etc/nginx/sites-available/linuxsec.confIsinya
server { listen 80; # direktori samakan degan milik apache2 root /var/www/html; index index.php index.html index.htm; # domain server_name linuxsec.local; location / { try_files $uri $uri/ /index.php; } # konfigurasi reverse proxy location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://localhost:8080; } location ~ /\.ht { deny all; } }
Enable serverblock dengan perintah
sudo ln -s /etc/nginx/sites-available/linuxsec.conf /etc/nginx/sites-enabled/
Cek konfigurasinya apakah ada yang error
sudo nginx -tJika oke, reload Nginx dengan perintah
sudo service nginx reloadSekarang Nginx sudah berjalan di port 80
Keduanya berjalan bersamaan
Kalian juga bisa pasang PHP Info untuk melihat proses PHP yang dijalankan di web server.
Terlihat kalau proses PHP nya dijalankan oleh Apache yang berada di backend.
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.