当前有一个运行节点服务器的网站,它处理所有example.com
的请求。我在另一台独立的服务器(运行apache)上创建了一个完全独立的WordPress博客,并希望将其提供到路径example.com/blog
下,该路径对应IP地址172.23.23.23
。WordPress服务器不共享任何代码,也不知道除自己以外的任何东西的存在。
在node/express中,最好的方法是如何将所有请求转发到这种方式?此外,新的WordPress服务器的A/CNAME记录应指向什么?
当前有一个运行节点服务器的网站,它处理所有example.com
的请求。我在另一台独立的服务器(运行apache)上创建了一个完全独立的WordPress博客,并希望将其提供到路径example.com/blog
下,该路径对应IP地址172.23.23.23
。WordPress服务器不共享任何代码,也不知道除自己以外的任何东西的存在。
在node/express中,最好的方法是如何将所有请求转发到这种方式?此外,新的WordPress服务器的A/CNAME记录应指向什么?
这个有效:以下是您需要在节点应用程序中放置的内容:
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应用程序中,您需要将网站URL设置为http://your_node_app.com/blog
注意:您可能已经拥有一个express应用程序,可能有一个body-parser中间件,这会导致错误并且通常与http-proxy中的POST请求不兼容
您可以在这些线程中找到一些解决方案,即1:将此代理放置在body-parser之前,或者2:使用connect-restreamer
已经工作并测试通过
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.use('*', createProxyMiddleware({target: 'https://yourdomain.com', changeOrigin: true}));
app.listen(3000);
首先安装以下内容
npm i -s express
npm i -s http-proxy-middleware