繁体   English   中英

node.js node-http-proxy不传递节点模块

[英]node.js node-http-proxy not passing node modules

我想将/ n /请求传递给node.js,然后将其他所有内容留给端口8080上的Apache。代理在端口80上运行,而/ n /的代码在端口9000上。

但是,诸如socket.io类的节点内容已损坏,因为我认为它的代理不正确-socket.io查询从apache中返回了404,如预期的那样:

找不到404

未找到

在此服务器上找不到请求的URL /socket.io/socket.io.js。


本地主机端口8080上的Apache / 2.2.22(Ubuntu)服务器

我的/ n /的起始HTML代码:

var app = require('http').createServer(handler);
var io = require('socket.io').listen(app);
var fs = require('fs');
var url = require('url');
var httpProxy = require('http-proxy');
io.set('log level', 1); 
app.listen(9000);

httpProxy.createServer({
router: {
    'localhost/n': '127.0.0.1:9000',
    'localhost': '127.0.0.1:8080'
    }

}).listen(80);

代理:

 var app = require('http').createServer(handler); var io = require('socket.io').listen(app); var fs = require('fs'); var url = require('url'); var httpProxy = require('http-proxy'); io.set('log level', 1); app.listen(9000); httpProxy.createServer({ router: { 'localhost/n': '127.0.0.1:9000', 'localhost': '127.0.0.1:8080' } }).listen(80); 

我如何获得代理以通过Node而不是Apache传递socket.io/socket.io.js 我已经尝试过使用为我的静态文件提供服务的相同代码(例如css / js),但是似乎不存在名为socket.io实际文件夹-节点似乎可以重写该文件夹。

单独使用node.js并不能实现apache的即席服务来提供静态文件。 因此,每个url / request / file都需要在路由器中指定。 为了使其快速运行,您可以在此处阅读node.js的express或仅在路由器中指定文件

    router: {
    'localhost/n': '127.0.0.1:9000',
    'localhost': '127.0.0.1:8080',
    '/socket.io/socket.io.js': 'path/to/the/file'
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM