2

我有一个可能与 nginx 代理通行证有关或无关的问题。

socket.io 在端口 7022 上,但 nginx 管理端口 80 上的所有请求。socket.io 非常好用,xhr 至少有一半好用。我从来没有让 flashsocket 或 html 文件工作。也许也不是 jasonp。

我说这可能与 nginx 中的代理有关,因为我确实在 nginx 中提供了 socket.io 代理替代方案之前几个月删除了 flashsocket。

我经常在论坛上看到 socket.io 可以正常工作。“我从不改变服务器上的任何东西”“你不应该也需要......socket.io为你做这一切......保持原样......

我的交通工具下降到

    io.set('transports', ['websocket','xhr-polling','jsonp-polling']);

而以下是推荐的:

    io.set('transports', [
        'websocket'
        ,'flashsocket'
        ,'htmlfile'
        ,'xhr-polling'
        ,'jsonp-polling'
    ]);

这是我的 nginx 代理配置

    location /socket.io {
        proxy_pass http://localhost:7022;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

我的 nginx 服务器还提供一些静态 html 以及 php,FastCGI 服务器监听 127.0.0.1:9000

其他 nginx 设置

server {
    listen 80;

    #server blah blah

    client_max_body_size 100M;
    client_body_buffer_size 5M;

    location / {
            try_files $uri $uri/ @rewrites;

    # This block will catch static file requests, such as images, css, js
    location ~* \.(?:ico|css|gif|jpe?g|png)$ {
            # Some basic cache-control for static files to be sent to the browser
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
            fastcgi_buffer_size 2M;
            fastcgi_intercept_errors off;
            fastcgi_buffers 4 2M;
            fastcgi_read_timeout 200;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass   127.0.0.1:9000;
    }

    # this prevents hidden files (beginning with a period) from being served
    location ~ /\. {
            deny all;
    }

    # opt-in to the future
    add_header "X-UA-Compatible" "IE=Edge,chrome=1";

有什么明显的吗??还有其他人对 socket.io 有运输问题吗?也许与 nginx 路由结合使用?

4

0 回答 0