My file bash, and configurate for linux

http://ariaf.my.id/linux_aria/networking/07 - reverseproxy.html


reverse proxy

  • Reverse proxy bekerja sebagai perantara antara klien dan server, menerima permintaan klien dan menentukan server terbaik untuk mengelola respon tersebut.
  • Setelah menerima permintaan, reverse proxy memproses lalu lintas untuk meningkatkan keamanan dan efisiensi.

nginx

  • edit config
    • sudo nano /etc/nginx/sites-available/default
      location / {
          proxy_pass http://localhost:8000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
          
          # …
      }
      
  • yang ini bisa dihapus
    try_files $uri $uri/ =404;
    
  • restart systemctl restart nginx

menerapkan limit access

  • edit config
    • sudo nano /etc/nginx/sites-available/default
      limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
      
      location / {    
          # …
      
          limit_req zone=one;
      }
      
      # jika lokasi spesifik seperti /admin
      location /admin {
          limit_req zone=one;
      }
      
  • restart systemctl restart nginx

apache2

  • enable modul rate limit
    a2enmod ratelimit
    
  • enable modul proxy
    a2enmod proxy
    a2enmod proxy_http
    
  • edit config
    <VirtualHost *:3000>
      ServerName localhost
    
      # Root folder
      DocumentRoot /var/www/html
    
      # Rate limiting dengan mod_ratelimit
      <Location "/">
          SetOutputFilter RATE_LIMIT
          # Batasi kecepatan transfer menjadi 10KB per detik per koneksi
          SetEnv rate-limit 1024
      </Location>
    
      # Proxy ke localhost:8000
      ProxyPreserveHost On
      ProxyPass / http://localhost:8000/
      ProxyPassReverse / http://localhost:8000/
    
      # Aktifkan modul proxy dan proxy_http
      ProxyRequests Off
      <Proxy *>
          Require all granted
      </Proxy>
    </VirtualHost>
    
  • jika ingin mengganti port apache bisa ganti /etc/apache2/ports.conf dan 000-default.nya