Infra Structure/Nginx

[Nginx] TCP/UDP reverse proxy

하 선생 2022. 10. 21. 11:35

$ cd /etc/nginx

$ sudo vi nginx.conf

 ( sites-available/ 디렉토리 내에 설정파일에 추가하지 않고 /etc/nginx/nginx.conf 설정파일에서 바로 수정)

 

[TCP] 

ex) mqtt

stream {
    upstream stream_backend {
        server 192.168.0.111:1883;
    }
    
    server {
        listen        1883;
        proxy_pass    stream_backend;
        proxy_timeout 3s;
        proxy_connect_timeout 1s;
    }
}

 

[UDP]

stream {
    
    upstream udp_servers {
        least_conn;
        server 192.168.136.130:2000;
        server 192.168.136.131:2000;
        server 192.168.136.132:2000;
    }

    server {
        listen     2000 udp;
        proxy_pass udp_servers;
    }   
}

 

 

vi /etc/nginx/nginx.conf

events {}

http {	
	upstream backend {
		server 192.168.0.100:8889;
	}

	server {
		listen 80;
		
		location / {
			proxy_pass http://backend;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
		}
	}

	upstream backend_api {
		server 192.168.0.100:7000;
	}

	server {
		listen 7000;
		
		location / {
			proxy_pass http://backend_api;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
		}
	}
}
 
stream {
    upstream stream_backend {
        server 192.168.0.100:1883;
    }
    server {
        listen        1883;
        proxy_pass    stream_backend;
        proxy_timeout 3s;
        proxy_connect_timeout 1s;
    }    

    upstream udp_servers {
        server 192.168.0.100:2000;
    }
    server {
        listen     2000 udp;
        proxy_pass udp_servers;
    }

    upstream udp_servers1 {
        server 192.168.0.100:2001;
    }
    server {
        listen     2001 udp;
        proxy_pass udp_servers1;
    }
 
    upstream udp_servers2 {
        server 192.168.0.100:2002;
    }
    server {
        listen     2002 udp;
        proxy_pass udp_servers2;
    }
	
}