我已经配置了nginx,这样任何 php 请求都会发送到 Apache 服务器,并且其中包含的任何 url都会发送到在8888/node/
上运行的节点服务器,包括一个套接字侦听器。
nginx.conf 如下
server {
listen 80;
server_name http://domain;
location / {
proxy_pass http://localhost:8080;
}
location /node {
rewrite ^/node(.+)$ $1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:8888;
}
}
现在的问题是socket.io request i.e io.connect('domain/node/')
客户端的响应失败,因为“在此服务器上找不到请求的 URL /socket.io/1/”,响应来自 apache !!。但是任何其他节点请求都按预期发送到节点服务器。
只有 socket.io 请求失败。
此外,如果我直接运行在浏览器请求中看到的套接字连接 URL,它看起来工作得非常好,我可以看到节点服务器上
domain/node/socket.io/1/?t=1380201512328
授权的握手。8wGgJYUvNdwAdcqenxQd