- ทำคล้ายๆ กับ direct ip reverse เลย แต่เพิ่มนิดหน่อย
- ในที่นี้ primary เป็น 192.168.1.1 ส่วน endpoint ที่จะให้ reverse ไปมี 192.168.1.2 และ 192.168.1.3:8080
Step
- แก้ไข /etc/nginx/default
- เพิ่ม section upstream ให้อยู่ในระดับเดียวกับ server {...} และตั้งชื่อที่เราต้องการ (ในที่นี้ตั้งเป็น repositories) พร้อมกำหนดค่าการ IP ที่จะให้ forward ไป
upstream repositories {
#server domain_name.com:443;
server 192.168.1.2;
server 192.168.1.3:8080;
}
server {
...
}
- จากนั้นใน location / section ให้เราตั้งค่าประมาณนี้
location / {# First attempt to serve request as file, then# as directory, then fall back to displaying a 404.# try_files $uri $uri/ =404;try_files $uri $uri/ /index.php?$args;proxy_next_upstream error timeout http_404;proxy_pass http://repositories;include proxy_params;}
- จากนั้น restart nginx
$ sudo systemctl restart nginx
- ทดสอบระบบโดยเข้าเว็บ http://192.168.1.1
- หน้าเว็บจะแสดงข้อมูลเหมือนเราเข้าเว็บ http://192.168.1.2 และ http://192.168.1.3:8080 สลับกันไปมาแบบ round robin
เพิ่มเติม
- ค่าเริ่มต้นในการ reverse น่าจะใช้แบบ round robin นะคือ กระจายไปแต่ละ endpoint เท่าๆ กัน
Related
- http://juuier.blogspot.com/2023/05/reverse-proxy-direct-nginx-ubuntu-2204.html
- https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
- https://www.bogotobogo.com/DevOps/Docker/Docker-Compose-Nginx-Reverse-Proxy-Multiple-Containers.php