Konfigurasi Nginx sebagai Reverse Proxy untuk Web Server Apache
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:
ServerName linuxsec.localTentu saja diatas adalah contoh konfigurasi virtualhost sederhana. Untuk konfigurasi lain bisa kalian sesuaikan sendiri.
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.





Komentar
Posting Komentar