Seputar Reverse Proxy #1
Case #1: Header Host
Misalkan Anda memiliki server Nginx yang bertindak sebagai reverse proxy untuk server backend yang menjalankan aplikasi web di http://localhost:8080. Konfigurasi Nginx Anda mungkin terlihat seperti ini:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
}
Dalam hal ini, ketika klien meminta http://example.com, Nginx akan meneruskan permintaan ke http://localhost:8080, tetapi akan mengatur header Host dalam permintaan yang diteruskan ke example.com . Ini memastikan bahwa aplikasi web di server backend menerima hostname yang benar.
proxy_set_header Host $host; adalah direktif penting dalam konfigurasi reverse proxy Nginx. Ini memastikan bahwa server backend menerima hostname asli yang diminta oleh klien, yang penting untuk banyak aplikasi web dan konfigurasi server.
Menampilkan header yang dikirim dari Proxy ke Backend
Berikut adalah kode php yang dapat digunakan untuk menampilkan parameter, header yang dikirim dari Proxy ke backend. Code ini dieksekusi di backend server
<?php
print_r(getallheaders());
?>
Ouput nya kira-kira seperti ini
--cut--
MoodleSession=m0bjujua4pt889vm40snrsik01 [Accept-Encoding] => gzip, deflate, br, zstd [Sec-Fetch-Dest] => document [Sec-Fetch-User] => ?1 [Sec-Fetch-Mode] => navigate [Sec-Fetch-Site] => none [Accept] => text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 [User-Agent] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 OPR/116.0.0.0 [Upgrade-Insecure-Requests] => 1 [Sec-Ch-Ua-Platform] => "Windows" [Sec-Ch-Ua-Mobile] => ?0 [Sec-Ch-Ua] => "Opera";v="116", "Chromium";v="131", "Not_A Brand";v="24" [Connection] => close [X-Forwarded-Port] => 443 [X-Forwarded-Proto] => https [X-Forwarded-For] => 210.210.154.57 [X-Real-Ip] => 210.210.154.57 [Host] => lmsproxy.digitos.id [Content-Length] => [Content-Type] => )