目前有一个网站运行一个节点服务器来处理example.com
的所有请求,我在一个单独的服务器(运行apache)上创建了一个完全独立的wordpress博客,我想在{{1}这样的路径上服务} example.com/blog
IP地址。 wordpress服务器不会共享任何代码,甚至不知道除了它自己之外是否存在任何代码
node / express以这种方式转发所有请求的最佳方式是什么?另外,新wordpress服务器的A / CNAME记录应指向什么?
答案 0 :(得分:9)
这有效:这是您需要在节点应用中添加的内容:
var express = require('express');
var app = module.exports = express();
var proxy = require('http-proxy').createProxyServer({
host: 'http://your_blog.com',
// port: 80
});
app.use('/blog', function(req, res, next) {
proxy.web(req, res, {
target: 'http://your_blog.com'
}, next);
});
app.listen(80, function(){
console.log('Listening!');
});
然后在您的wordpress应用中,您需要将网站网址设置为http://your_node_app.com/blog
注意:您可能已经有一个明确的应用程序可能有一个body-parser中间件causes errors和generally doesn't play well with POST requests in http-proxy
你会在这些线程中找到几个解决方案,即1:只需将此代理放在 body-parser之前,或者2:使用connect-restreamer
答案 1 :(得分:0)
经过测试并
var express = require('express');
var proxy = require('http-proxy-middleware');
var app = express();
app.use('*', proxy({target: 'https://yourdomain.com', changeOrigin: true}));
app.listen(3000);
先安装以下内容
npm i -s express
npm i -s http-proxy-middleware