host names in 1.9

Francis Daly francis at
Tue May 26 23:29:05 UTC 2015

On Tue, May 26, 2015 at 06:47:19PM -0400, sentinel21 wrote:

Hi there,

> I'm having some difficulty using the stream directive in 1.9.  I may be
> using it wrong, so please correct me if this is incorrect or not possible. 

A connection comes to an ip:port.

A http connection includes a specific host name in a well-known place
in the request.

An arbitrary tcp connection does not.

> stream {
>     server {
>         listen 1520;

Untested, but: listen on ip1:1520 here, and ip2:1520 in the next
server block; then have the different host names resolve to different
ip addresses.

> I have multiple host names (server_name s) that I want to hit 1520 and be
> proxied to different upstream dbs.  I have a second stream context with a
> different server_name and different upstream db.  I can't get this to work. 
> I think I'm missing something.  How would I accomplish this?  ultimate goal:
>  reverse proxy a database connection based on host name.

I can't see any other way to achieve what you want, for a generic tcp

hostname is irrelevant - all nginx sees is the ip:port connected to.

Francis Daly        francis at

More information about the nginx mailing list