url - nginx rewrites paths proxied to node.js -
i'm trying make nodejs website/server download website when user goes url looking this: http://example.com/test/http://google.com
the problem nginx rewriting req.url /test/http:/google.com
when should /test/http://google.com
app.js:
var express = require('express'); var http = require('http'); var app = express(); app.configure(function(){ app.set('port', 8080); app.set('views', __dirname + '/app/server/views'); app.set('view engine', 'jade'); app.use(express.logger('dev')); app.use(express.bodyparser()); app.use(express.cookieparser()); app.use(express.session({ secret: 'super-duper-secret-secret' })); app.use(express.methodoverride()); app.use(require('stylus').middleware({ src: __dirname + '/app/public' })); app.use(express.static(__dirname + '/app/public')); app.enable('trust proxy') }); app.configure('development', function(){ app.use(express.errorhandler()); }); require('./app/server/router')(app); http.createserver(app).listen(app.get('port'), 'localhost', function(){ console.log("express server listening on port " + app.get('port')); })
router.js:
app.get('/test/*', function(req, res) { console.log("req.url:"); console.log(req.url); res.send('200', req.url); });
example.com file in /etc/nginx/sites-enabled
server { server_name example.com; access_log /var/log/nginx/example.com.log; # pass request node.js server correct headers , more can added, see nginx config options location / { proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header host $http_host; proxy_set_header x-nginx-proxy true; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } }
is there way make nginx not rewrite does?
maybe (untested code) you're after:
app.get('/test/:url', function(req, res) { console.log("req.params.url:", req.params.url); res.send('200', req.params.url); });
Comments
Post a Comment