Whats is the correct message sequence for nginx server?

hemant_psu nginx-forum at nginx.us
Wed Oct 23 18:15:48 UTC 2013

I am running nginx-1.5 server and sending chrome browser simple websocket
request. My nginx server is confgiured with hello module which is supposed
to send "Hello world" in response. 

As per RFC for websocket, a sever is supposed to send "switching protocol
message "as ACK for connection upgrade request message. 
In my wireshark capture, I do see connection upgrade request message but in
response, I see HTTP 1.1 200 0K message with "Hello World" 
text on data portion of HTTP payload.

I am confused in terms of response, thinking my nginx server should have
first sent connection upgrade response acknowledgement before responding
with text data.  Can anyone please suggest the right behaviour of nginx
server when it gets a Connection upgrade request message.

My NGinx config is :
  server {
        listen 80;

        #access_log /var/log/nginx/access.log;
        #error_log /var/log/nginx/error.log;

        server_name localhost;

        # prevents 502 bad gateway error
        large_client_header_buffers 8 64k;

        location /hello {
                #root   html;
                #index  index.html index.htm;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For
                proxy_set_header Host $http_host;
                proxy_set_header X-NginX-Proxy true;

                # prevents 502 bad gateway error
                proxy_buffers 8 32k;
                proxy_buffer_size 64k;
                proxy_connect_timeout   90;
                proxy_send_timeout      90;
                proxy_intercept_errors on;
                proxy_buffering        on;
                proxy_busy_buffers_size 64k;
                proxy_temp_file_write_size 256k;
                proxy_read_timeout      300;

                #proxy_pass http://backend;
                proxy_redirect off;

                # enables WS support
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;

Also when I enable  #proxy_pass http://backend , server stop responding and
gives HTTP1.1/400 bAD REQUEST saying
cookie size is large. I am unable to understand , why enabling this line
leads to this error , when the request is same in both the cases.

Any help will be appreciated?


Posted at Nginx Forum: http://forum.nginx.org/read.php?2,244050,244050#msg-244050

More information about the nginx mailing list