2016-11-29 37 views
0

我试图在2个不同的服务器Nginx的TCP转发基于域名

前使用nginx的代理

example.com,example1.com >> nginx的10.0.0.1 >>>> 10.0.0.2,10.0。 0.3

stream { 


server { 
listen 1935; 
    proxy_pass 10.0.0.2:1936; 
      proxy_protocol on; 
} 
server { 
listen 1935; 
    proxy_pass 10.0.0.3:1936; 
      proxy_protocol on; 
} 

} 

我有检查TCP load balance guide,但我怎么也找不到,使其工作

回答

0

使用server_name指令,以确定哪些服务器块用于给定的请求。

server { 
    listen 1935; 
    server_name example.com; 
    location/{ 
     proxy_pass 10.0.0.1:1936; 

     # the usual proxy_* stuff 
    } 
} 
server { 
    listen 1935; 
    server_name example1.com; 
    location/{ 
     proxy_pass 10.0.0.2:1936; 

     # the usual proxy_* stuff 
    } 
} 

来源:http://nginx.org/en/docs/http/server_names.html

+0

我已经使用这个端口80,流是rtmp,它会给重复否? – Lolak

+0

@谭宏达,纠正我,如果我错了,但'server_name'只适用于'http'块,而不是'stream'块,它似乎@Lolak需要代理rtmp连接。 – Michael

0

tcp load balancing page of nginx

nginx tcp load balancing example




根据示例尝试这个例子:

stream { 
    upstream rtmp_servers { 
    least_conn; 
    server 10.0.0.2:1935; 
    server 10.0.0.3:1935; 
    } 
} 

server { 
    listen  1935; 
    server_name example.com, example1.com; 
    proxy_pass rtmp_servers; 
} 
+0

谢谢,但没有工作“服务器”指令在这里是不允许的,我不能在http { – Lolak

+0

里面添加它你能解释一下你把这段代码放在哪里吗? – num8er

+0

在nginx.conf中,我有那里HTTP {服务器代理端口80等}然后流{code},试图代理端口80 HTTP和端口1935 1936 rtmp – Lolak