
Nginx proxy_pass에서 upstream server 설정에 대한 질문입니다.
upstream server의 이름을 사용하는 것이 더 좋습니다. 이는 가독성과 유지보수성을 향상시켜주며, 향후 upstream server의 IP 주소나 포트가 변경되어도 Nginx 설정만 수정하면 충분합니다.
upstream server의 이름을 사용할 때, upstream server가 여러 대가 있는 경우 load balancing을 사용하여 여러 대의 서버에 분산된 요청을 보낼 수 있습니다. Nginx에서 제공하는 load balancing 방식으로는 Round-Robin, Weighted Round-Robin, Least Connection, IP Hash 등이 있습니다.
예시 코드는 다음과 같습니다.
```nginx
http {
upstream backend {
server 192.168.1.100;
server 192.168.1.101;
server 192.168.1.102;
# load balancing
load_balance round_robin;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_pass_request_headers on;
proxy_pass_request_body on;
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $X-Real-IP;
proxy_set_header X-Forwarded-For $X-Forwarded-For;
proxy_set_header X-Forwarded-Host $X-Forwarded-Host;
proxy_set_header X-Forwarded-Server $X-Forwarded-Server;
proxy_set_header X-Forwarded-Port $X-Forwarded-Port;
proxy_set_header X-Forwarded-Port-Secure $X-Forwarded-Port-Secure;
proxy_set_header X-Forwarded-Proto $X-Forwarded-Protocol;
proxy_set_header X-Forwarded-Port-https $X-Forwarded-Port-https;
proxy_set_header X-Forwarded-Port-https-secure $X-Forwarded-Port-https-secure;
proxy_set_header X-Forwarded-Port-https-secure-https $X-Forwarded-Port-https-secure-https;
proxy_set_header X-Forwarded-Port-https-secure-https-https $X-Forwarded-Port-https-secure-https-https;
proxy_set_header X-Forwarded-Port-https-secure-https-https-https $X-Forwarded-Port-https-secure-https-https-https;
proxy_set_header X-Forwarded-Port-https-secure-https-https-https-https $X-Forwarded-Port-https-secure-https-https-https-https;
proxy_set_header X-Forwarded-Port-https-secure-https-https-https-https-https $X-Forwarded-Port-https-secure-https-https-https-https-https;
proxy_set_header X-Forwarded-Port-https-secure-https-https-https-https-https-https $X-Forwarded-Port-headers.
2025-04-20 21:46