Skenario terdapat 2 web server.

  1. Web server lokal (192.168.1.100)
  2. Server reverse proxy (182.12.1.10)

Baca juga Cara membuat user SFTP untuk web direktori

Client mengakses aplikasi web melalui reverse proxy, dari reverse proxy mengarahkan web server lokal mana yang dituju. Adapun kebutuhannya diantaranya :

  • Web redirect HTTPS
  • Semua user mengakses semua web server lokal melalui reverse proxy

Kekurangan dari skenario ini apabila reverse proxy down, semua akses ke web server lokal juga down

Konfigurasi Apache Virtual Host

  • Buat file dengan ektensi .conf di direktori /etc/httpd/conf.d/ dan isikan baris perintah berikut
    <VirtualHost *:80>
    ServerAdmin sysadmin
    DocumentRoot /homedir/ayam/public_html/
    ServerName ayam.hasbullahmarwan.com
    ServerAlias www.ayam.hasbullahmarwan.com
    <Directory /homedir/ayam/public_html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Allow from All
        Require all granted
    </Directory>
    ErrorLog logs/ayam.hasbullahmarwan.com-error_log
    CustomLog logs/ayam.hasbullahmarwan.com-access_log common
    </VirtualHost>
  • Restart service httpd
    systemctl restart httpd

Konfigurasi di Nginx

File conf nginx dikategorikan berdasarkan IP Address dari web server lokal

  • Buat file dengan ekstensi .conf di direktori /etc/nginx/conf.d/ (Contoh ip100.conf). Isikan file tersebut dengan baris perintah berikut
    upstream ip100 {
    server 192.168.1.100;
    }
  • Tambahkan perintah berikut berdasarkan aplikasi web yang berada web server lokal 192.168.1.100. Apabila ada aplikasi lain, duplikat script dibawah dan sesuaikan dengan domain yang dituju.
    server {
    listen 80;
    server_name ayam.hasbullahmarwan.com;
    return 301 https://$host$request_uri;
    }
    server {
    listen 443 ssl;
    server_name ayam.hasbullahmarwan.com;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate /etc/ssl/private/STAR_hasbullah.crt;
    ssl_certificate_key /etc/ssl/private/hasbullah.key;
    location / {
        proxy_pass http://ip100;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    }
  • Restart service nginx
    systemctl restart nginx