Error 200 during WebSocket handshake: Aws load balancer + ec2 websocketnginx redirect issue with upstream configurationnginx proxy redirecting request to different proxyApache / Nginx / Varnish - GZIP does not work on css, jsnginx rewrite throw 404 with last and breakNginX + WordPress + SSL + non-www + W3TC vhost config file questionsNginx WebSocket reverse proxy keeps return 200 instead of 101Amazon AWS WebSocket Load Balancing Scale-Inapache websocket conf for microservice managed by load balancerCannot get websocket connection working with ec2 + application load balancerRedirect in nginx port not showing up
Is it recommended against to open-source the code of a webapp?
Select items in a list that contain criteria #2
Turing patterns
Why doesn’t a normal window produce an apparent rainbow?
What are the words for people who cause trouble believing they know better?
Average spam confidence
What do we gain with higher order logics?
Notation of last measure of a song with a pickup measure
How hard would it be to convert a glider into an powered electric aircraft?
Is it possible to express disjunction through conjunction and implication?
How do I write "Show, Don't Tell" as a person with Asperger Syndrome?
Russian equivalents of "no love lost"
How did students remember what to practise between lessons without any sheet music?
How to translate “Me doing X” like in online posts?
Russian equivalent of the French expression "broyer du noir"
Why don’t airliners have temporary liveries?
Why only the fundamental frequency component is said to give useful power?
Float division returns "inf" and 0
Are "living" organ banks practical?
What is the advantage of carrying a tripod and ND-filters when you could use image stacking instead?
Last survivors from different time periods living together
Company did not petition for visa in a timely manner. Is asking me to work from overseas, but wants me to take a paycut
Implement Homestuck's Catenative Doomsday Dice Cascader
Building a road to escape Earth's gravity by making a pyramid on Antartica
Error 200 during WebSocket handshake: Aws load balancer + ec2 websocket
nginx redirect issue with upstream configurationnginx proxy redirecting request to different proxyApache / Nginx / Varnish - GZIP does not work on css, jsnginx rewrite throw 404 with last and breakNginX + WordPress + SSL + non-www + W3TC vhost config file questionsNginx WebSocket reverse proxy keeps return 200 instead of 101Amazon AWS WebSocket Load Balancing Scale-Inapache websocket conf for microservice managed by load balancerCannot get websocket connection working with ec2 + application load balancerRedirect in nginx port not showing up
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm using load balancer in front of an aws ec2 instance(I will have more in future). In this ec2, I have a website being served by nginx on port 80, a nodejs app listening on 8080 and the websocket on 4555.
My nginx.conf has rules to pass the requests based on location / as you can see:
server
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /var/www/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#try_files $uri $uri/ @rewrite;
# location @rewrite
# rewrite ^/(.*)$ /index.php?param=$1;
#
location /api
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location /chat
proxy_pass http://127.0.0.1:4555;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
It was working when I was redirectioning the connection directly to the instance but now that we have the loadbalancer in the front it doesn't work anymore.
web application output:
WebSocket connection to 'wss://www.domain.com/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 200
And this is the headers:
Request URL: wss://www.domain.com/socket.io/?EIO=3&transport=websocket
Request Method: GET
Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Mon, 20 May 2019 18:53:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx/1.14.1
Transfer-Encoding: chunked
X-Powered-By: PHP/5.6.40
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: Upgrade
Cookie: PHPSESSID=a6v5ebp25cajb1dj9s6je605a3
Host: www.domain.com
Origin: https://www. domain.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: kmYaufsBu3UFD+qGm1vlGA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
EIO: 3
transport: websocket
nginx amazon-web-services node.js websocket
add a comment |
I'm using load balancer in front of an aws ec2 instance(I will have more in future). In this ec2, I have a website being served by nginx on port 80, a nodejs app listening on 8080 and the websocket on 4555.
My nginx.conf has rules to pass the requests based on location / as you can see:
server
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /var/www/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#try_files $uri $uri/ @rewrite;
# location @rewrite
# rewrite ^/(.*)$ /index.php?param=$1;
#
location /api
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location /chat
proxy_pass http://127.0.0.1:4555;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
It was working when I was redirectioning the connection directly to the instance but now that we have the loadbalancer in the front it doesn't work anymore.
web application output:
WebSocket connection to 'wss://www.domain.com/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 200
And this is the headers:
Request URL: wss://www.domain.com/socket.io/?EIO=3&transport=websocket
Request Method: GET
Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Mon, 20 May 2019 18:53:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx/1.14.1
Transfer-Encoding: chunked
X-Powered-By: PHP/5.6.40
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: Upgrade
Cookie: PHPSESSID=a6v5ebp25cajb1dj9s6je605a3
Host: www.domain.com
Origin: https://www. domain.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: kmYaufsBu3UFD+qGm1vlGA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
EIO: 3
transport: websocket
nginx amazon-web-services node.js websocket
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12
add a comment |
I'm using load balancer in front of an aws ec2 instance(I will have more in future). In this ec2, I have a website being served by nginx on port 80, a nodejs app listening on 8080 and the websocket on 4555.
My nginx.conf has rules to pass the requests based on location / as you can see:
server
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /var/www/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#try_files $uri $uri/ @rewrite;
# location @rewrite
# rewrite ^/(.*)$ /index.php?param=$1;
#
location /api
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location /chat
proxy_pass http://127.0.0.1:4555;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
It was working when I was redirectioning the connection directly to the instance but now that we have the loadbalancer in the front it doesn't work anymore.
web application output:
WebSocket connection to 'wss://www.domain.com/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 200
And this is the headers:
Request URL: wss://www.domain.com/socket.io/?EIO=3&transport=websocket
Request Method: GET
Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Mon, 20 May 2019 18:53:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx/1.14.1
Transfer-Encoding: chunked
X-Powered-By: PHP/5.6.40
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: Upgrade
Cookie: PHPSESSID=a6v5ebp25cajb1dj9s6je605a3
Host: www.domain.com
Origin: https://www. domain.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: kmYaufsBu3UFD+qGm1vlGA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
EIO: 3
transport: websocket
nginx amazon-web-services node.js websocket
I'm using load balancer in front of an aws ec2 instance(I will have more in future). In this ec2, I have a website being served by nginx on port 80, a nodejs app listening on 8080 and the websocket on 4555.
My nginx.conf has rules to pass the requests based on location / as you can see:
server
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /var/www/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#try_files $uri $uri/ @rewrite;
# location @rewrite
# rewrite ^/(.*)$ /index.php?param=$1;
#
location /api
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location /chat
proxy_pass http://127.0.0.1:4555;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
It was working when I was redirectioning the connection directly to the instance but now that we have the loadbalancer in the front it doesn't work anymore.
web application output:
WebSocket connection to 'wss://www.domain.com/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 200
And this is the headers:
Request URL: wss://www.domain.com/socket.io/?EIO=3&transport=websocket
Request Method: GET
Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Mon, 20 May 2019 18:53:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx/1.14.1
Transfer-Encoding: chunked
X-Powered-By: PHP/5.6.40
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: Upgrade
Cookie: PHPSESSID=a6v5ebp25cajb1dj9s6je605a3
Host: www.domain.com
Origin: https://www. domain.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: kmYaufsBu3UFD+qGm1vlGA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
EIO: 3
transport: websocket
nginx amazon-web-services node.js websocket
nginx amazon-web-services node.js websocket
edited May 20 at 18:59
Sandro Benevides
asked May 20 at 18:12
Sandro BenevidesSandro Benevides
165
165
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12
add a comment |
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968127%2ferror-200-during-websocket-handshake-aws-load-balancer-ec2-websocket%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968127%2ferror-200-during-websocket-handshake-aws-load-balancer-ec2-websocket%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
OK, how did you set up the websocket endpoint in the load balancer?
– Michael Hampton♦
May 20 at 19:10
@MichaelHampton The websocket endpoint it's the same ec2 of the webserver. It's an ec2 in the target group of this load balancer. I also tried to activate connection stickyness but no success.
– Sandro Benevides
May 20 at 19:12