[Freeswitch-users] WebSocket behind NGINX
Dan Edwards
DEdwards at vertical.com
Mon Feb 8 19:36:50 MSK 2016
Anton,
I'm glad my input was useful. As for WSS vs WS, the fact you're using security bubbles up into the SIP messages themselves. I initially tried:
Browser >> WSS >> Nginx >> WS >> FS
FS does not like this because the protocol changes. You go from SIP/2.0/WSS to SIP/2.0/WS and FS won't allow that. Also, in some instances, you will get SIP URL changes. For example: sip:1234 at domain.com vs. sips:1234 at domain.com.
The reason to go with WS to FS was to skip an encrypt/decrypt cycle on network traffic that never left the machine. I finally decided that trying to patch the SIP traffic was bound to fail at some point and we're only saving the encrypt/decrypt on the SIP traffic itself, so I went back to
Browser >> WSS >> Nginx >>> WSS >> FS
-----Original Message-----
From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Anton
Sent: Saturday, February 06, 2016 4:39 PM
To: freeswitch-users at lists.freeswitch.org
Subject: Re: [Freeswitch-users] WebSocket behind NGINX
Hi,
Sorry for not answering for a long time.
Dan, thank you, your recommendation really helped me.
So in order to proxy websocket request you need:
1. Proxy websocket requests in this way WSS -> (NGINX) -> FS WSS or WS
-> (NGINX) -> FS WS
2. Modify local-network-acl
3. Modify apply-candidate-acl if you would like to drop more rtp candidates
PS: I highly recommend to watch this video about NAT issues and ACL
configuration:
https://www.youtube.com/watch?v=_WSx-T6TriI
BR,
Anton Voylenko
On 01/30/2016 09:20 PM, Anton wrote:
> Hello All,
>
> I have to proxy all websocket requests though a nginx server. Right
> now I am using next configuration:
>
> map $http_upgrade $connection_upgrade {
> default upgrade;
> '' close;
> }
>
> server {
> listen 443;
> server_name wss.somedomain.com.ua;
>
> ssl on;
> ssl_certificate /etc/nginx/cert.pem;
> ssl_certificate_key /etc/nginx/private.key;
>
> location / {
> proxy_pass http://127.0.0.1:5066;
> proxy_http_version 1.1;
> proxy_set_header Upgrade $http_upgrade;
> proxy_set_header Connection $connection_upgrade;
> proxy_read_timeout 86400s;
> }
>
> access_log /var/log/nginx/wss_access;
> error_log /var/log/nginx/wss_error debug; }
>
> I dumped traffic from nginx and found out that "switching protocol"
> phrase was successful but INVITE message from my browser in pending
> state.
> Maybe FreeSWITCH wants real IP not loopback? Who have faced with
> similar problem?
>
> BR,
> Anton
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org
http://www.freeswitchsolutions.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com
FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users
mailing list