Node forward path request to another server
Solution 1
This works: here's what you need to put in your node app:
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!');
});
Then in your wordpress app you need to set the Site URL to http://your_node_app.com/blog
Note: You probably already have an express app with probably a body-parser middleware which causes errors and generally doesn't play well with POST requests in http-proxy
You'll find couple solutions in those threads, namely 1: just put this proxy before body-parser, or 2: use connect-restreamer
Solution 2
Worked and Tested
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);
Install the following first
npm i -s express
npm i -s http-proxy-middleware
Maruf
Updated on June 04, 2022Comments
-
Maruf almost 2 years
Currently have a website running a node server that handles all requests for
example.com
and I created a completely separate wordpress blog on a separate server (running apache) that I would like served on a path likeexample.com/blog
at172.23.23.23
IP address. The wordpress server doesn't share any code or is even aware of the existence of anything besides itselfWhat is the best way in node/express to forward all requests in this manner? Also what should the A/CNAME records for the new wordpress server point to?
-
richardwhitney about 5 yearsusing your, @laggingreflex, suggestion, I have this question: stackoverflow.com/questions/55736094/…
-
Amr Ibrahim about 3 years@maruf kindly check this answer
-
Udhaya about 3 years@laggingreflex, How to read the response status code and response body of proxy request?