Node http-proxy and express

前端 未结 4 631
孤独总比滥情好
孤独总比滥情好 2020-12-08 05:01

I\'m trying to do something like this:

// Setup prox to handle blog requests
httpProxy.createServer({
    hostnameOnly: true,
    router: {
        \'http://         


        
相关标签:
4条回答
  • 2020-12-08 05:42

    A very straightforward solution which works seamlessly, and with cookies/authentication as well, using express-http-proxy:

    var proxy = require('express-http-proxy');
    
    var blogProxy = proxy('localhost/blog:2368', {
        forwardPath: function (req, res) {
            return require('url').parse(req.url).path;
        }
    });
    

    And then simply:

    app.use("/blog/*", blogProxy);
    

    I know I'm late to join this party, but I hope this helps someone.

    0 讨论(0)
  • 2020-12-08 06:03

    Using http-proxy 1.0 with express:

    var httpProxy = require('http-proxy');
    
    var apiProxy = httpProxy.createProxyServer();
    
    app.get("/api/*", function(req, res){ 
      apiProxy.web(req, res, { target: 'http://google.com:80' });
    });
    
    0 讨论(0)
  • 2020-12-08 06:06

    I got this working.

    • Install Ghost and make sure it's working property (default port is 2368)
    • Create your node web app using express (listen on port 80) - nothing special here
    • Install node-http-proxy npm install http-proxy in your web app
    • Create wildcard route for /blog* that proxies requests to Ghost service

      var httpProxy = require('http-proxy');
      
      var proxy = new httpProxy.RoutingProxy();
      app.get('/blog*', function (req, res, next) {
        proxy.proxyRequest(req, res ,{
          host: 'moserlap.splitvr.com',
          port: 2368  
        });
      });
      
    • Update the Ghost config to use a sub directory (only supported in 0.4.0+)

      config = {
        // ### Development **(default)**
        development: {
        // The url to use when providing links to the site, E.g. in RSS and email.
        url: 'http://127.0.0.1/blog',
      ...
      
    • You should now be able to hit http://yoursite.com/blog and all routes work.

    0 讨论(0)
  • 2020-12-08 06:07

    I have used simple solution to proxified my GET/POST requests.

    var httpProxy = require('http-proxy');
    var apiProxy = httpProxy.createProxyServer();
    
    app.post("/api/*", function(req, res) {
      apiProxy.web(req, res, { target: 'http://localhost:5000'})
    });
    app.get("/api/*", function(req, res) {
      apiProxy.web(req, res, { target: 'http://localhost:5000'})
    });
    

    another easier way to handle all type of requests is:

    app.all("/api/*", function(req, res) {
      apiProxy.web(req, res, { target: 'http://localhost:5000'})
    });
    

    NOTE: above functions must be before bodyparser.

    0 讨论(0)
提交回复
热议问题