Melakukan konfigurasi Nginx untuk Backend API dan Frontend melalui HTTP akan berbeda kasus jika melalui Port aplikasi. Pada konfigurasi ini akan menjelaskan bagaimana Path Location dapat Hit HTTP pada target Proxy Pass. Pastikan dari sisi Backend dan Frontend sudah di berikan Context Path / Base URL yang sesuasi di Nginx. Berikut konfiguasinya.
server {
listen 80;
server_name example.id;
access_log /var/log/nginx/example.id.access.log;
error_log /var/log/nginx/example.id.error.log;
proxy_http_version 1.1; # Web Socket
proxy_redirect off;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade; # Web Socket
proxy_set_header Connection "upgrade"; # Web Socket
proxy_set_header Host $host; # Web Socket
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-URI $request;
location /frontend {
proxy_pass http://192.168.1.10:80/; # Hit HTTP
}
location /backend_satu {
proxy_pass http://192.168.1.10:80; # Hit Port
}
location /backend_dua {
proxy_pass http://192.168.1.10:80/; # Hit HTTP
}
}
Kesimpulannya untuk melakukan hit dari Load Balancer ke Member location proxy pada Frontend harus diarahkan ke HTTP dari Port tersebut agar dapat dikenali oleh Nginx dan diteruskan kepada Client.
Link Referensi :
https://gist.github.com/soheilhy/8b94347ff8336d971ad0
https://tarunlalwani.com/post/nginx-proxypass-server-paths/
https://www.freecodecamp.org/news/docker-nginx-letsencrypt-easy-secure-reverse-proxy-40165ba3aee2/