猿问

Nginx作为网络服务器 socket.io和node.js / ws:// 400错误的请求

我有这个错误要求。


德语的最后一句意思是“ Firefox无法连接到位于ws:// .......的服务器”。


服务器不会是我认为的问题。


因为这是nginx配置,因为我认为存在问题!


server {

    server_name example.org;

    listen 80 default_server;

    root /var/www/web;


    location / # for symfony2

    {

        try_files $uri @rewriteapp;

    }


    location @rewriteapp # for symfony2

    {

                rewrite ^(.*)$ /app.php/$1 last;

    }


    location ~ ^/app\.php(/|$)

    {

        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;

        include fastcgi_params;

        fastcgi_param HTTPS off;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    }


    location ~ ^/socket

    {

        proxy_pass http://127.0.0.1:8080;

        proxy_redirect off;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

        proxy_set_header Host $http_host;

    }


    access_log /var/log/nginx/access.log;

    error_log /var/log/nginx/error.log;

}

nginx版本:nginx / 1.4.7


app.js(即服务器!)


var express = require('express'),

    io = require('socket.io').listen(server),

    server = require('http').createServer(app),

    bodyParser = require('body-parser');


var app = express();

server.listen(8080);


app.use(bodyParser.json());


app.post('/', function(request, response)

{

    response.send('OK');

    io.emit('MessageForAll', request.body);

});


io.on('connection', function (socket){});


console.log('Server running on port 8080.');


慕雪6442864
浏览 992回答 3
3回答

倚天杖

是否可以像我上面所说的那样尝试在本地服务器上设置新实例,或者将位置^〜/ socket放在ngnix配置中的位置上方/下方或位置下方的顶部。我确定它的发生仅是由于ngnix配置。我尝试使用除symfony2设置以外的相同目录。我也在用package.json更新答案。请检查一下。
随时随地看视频慕课网APP

相关分类

Node.js
我要回答