Proxying based on protocol (e.g. "ws"/"wss")?
Daniel Griscom
griscom at suitable.com
Sat May 11 15:05:18 UTC 2013
Thanks. I've been coming to that conclusion myself.
Take care,
Dan
At 7:00 PM +0400 5/11/13, Maxim Dounin wrote:
>Hello!
>
>On Fri, May 10, 2013 at 02:35:35PM -0400, Daniel Griscom wrote:
>
>> That's great information, but now I need to figure out how to
>> selectively proxy to my websocket backend when $http_upgrade is
>> "websocket". I see the following choices:
>>
>> 1) Have nginx listen at port 80, and proxy all traffic to port XXXX
>> if $http_upgrade is "websocket", or port YYYY if not. Then set up
>> nginx to handle http traffic at port YYYY, and have my websocket
>> backend handle websocket traffic at port XXXX.
>>
>> 2) Investigate the much-maligned "if" statement.
>>
>>
>> ... any other choices? Thoughts?
>
>I would recommend using URI-based distinction instead (and
>location{} blocks as a result). This would be most natural
>solution from nginx point of view.
>
>>
>>
>> Thanks,
>> Dan
>>
>>
>> At 1:26 PM +0400 5/10/13, Maxim Dounin wrote:
>> >Hello!
>> >
>> >On Fri, May 10, 2013 at 09:14:04AM +1200, Steve Holdoway wrote:
>> >
>> >> The scheme is available as... $scheme
>> >
>> >Yes, but WebSocket protocol uses http for handshake. So the
>> >scheme will be either "http" or "https". WebSocket requests can
>> >be identified based on Upgrade header, i.e. $http_upgrade
>> >variable.
>> >
>> >>
>> >> On Thu, 2013-05-09 at 14:45 -0400, Daniel Griscom wrote:
>> >> > ... bump?
>> >> >
>> >> > (thanks,
>> >> > Dan)
>> >> >
>> >> >
>> >> > At 9:32 AM -0400 5/8/13, Daniel Griscom wrote:
>> >> > >I'm an nginx newbie, and need use use it as a front end for a
>> >> > >website that also handles websocket connections. I have the
>> >> > >configuration set up so that requests to a specific URI match a
>> >> > >location section, which then proxies the request to the websocket
>> >> > >back end server, and it all works. (Very cool.)
>> >> > >
>> >> > >However, I was wondering if, rather than detecting requests to a
>> >> > >specific location, I could proxy all "ws://" or "wss:// requests,
>> >> > >independent of the URI being requested.
>> >> > >
>> >> > >Is there a way to proxy all requests with a given protocol?
>> >> > >
>> >> > >
>> >> > >Thanks,
>> >> > >Dan
>> >> > >
>> >> > >--
>> >> > >Daniel T. Griscom griscom at suitable.com
>> >> > >Suitable Systems http://www.suitable.com/
>> >> > >1 Centre Street, Suite 204 (781) 665-0053
>> >> > >Wakefield, MA 01880-2400
>> >> > >
>> >> > >_______________________________________________
>> >> > >nginx mailing list
>> >> > >nginx at nginx.org
>> >> > >http://mailman.nginx.org/mailman/listinfo/nginx
>> >> >
>> >> >
>> >>
>> >> --
>> >> Steve Holdoway BSc(Hons) MNZCS <steve at greengecko.co.nz>
>> >> http://www.greengecko.co.nz
>> >> MSN: steve at greengecko.co.nz
>> >> Skype: sholdowa
>> >>
>> >> _______________________________________________
>> >> nginx mailing list
>> >> nginx at nginx.org
>> >> http://mailman.nginx.org/mailman/listinfo/nginx
>> >
>> >--
>> >Maxim Dounin
>> >http://nginx.org/en/donation.html
>> >
>> >_______________________________________________
>> >nginx mailing list
>> >nginx at nginx.org
>> >http://mailman.nginx.org/mailman/listinfo/nginx
>>
>>
>> --
>> Daniel T. Griscom griscom at suitable.com
>> Suitable Systems http://www.suitable.com/
>> 1 Centre Street, Suite 204 (781) 665-0053
>> Wakefield, MA 01880-2400
>>
>> _______________________________________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>
>--
>Maxim Dounin
>http://nginx.org/en/donation.html
>
>_______________________________________________
>nginx mailing list
>nginx at nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx
--
Daniel T. Griscom griscom at suitable.com
Suitable Systems http://www.suitable.com/
1 Centre Street, Suite 204 (781) 665-0053
Wakefield, MA 01880-2400
More information about the nginx
mailing list