2015-10-15 26 views
5

Apache yapılandırmamda, /node numaralı tüm trafiği, Express sunucusunun dinlediği bağlantı noktası 3000'a iletiyorum.Ekspres yollarını korumak için Apache ProxyPass nasıl kurulur

<IfModule mod_proxy.c> 

    ProxyRequests Off 

    ProxyPass /node http://localhost:3000/ 

</IfModule> 

Express uygulaması şuna benzer:

var express = require('express'); 

var app = express(); 
var router = express.Router(); 

router.route('/route/:id').get(function (req, res) { 

    res.json({ description: 'Welcome to a route with an ID' }); 
}); 

router.route('/route').get(function (req, res) { 

     res.json({ description: 'Welcome to the normal route' }); 
}); 

router.route('/').get(function (req, res) { 

    res.json({ data: 'Welcome to the app' }); 
}); 

app.use('/', router); 

app.listen(3000); 

Ben http://myserver.com/node benim tarayıcı yönlendirecektir zaman gayet yanıtı { data: 'Welcome to the app' }, olsun. Yine de, http://myserver.com/node/route veya http://myserver.com/node/1210 gitmeye çalıştığımda Cannot GET //route hata alıyorum.

Ekspres yollarını korumak için Apache yapılandırmamı nasıl güncelleyebileceğime dair herhangi bir fikriniz var mı?

CentOS'ta Apache 2.4.6 çalıştırıyorum.

+0

Yalnızca bir ipucu: nginx proxy düğümünü kullanıyor, nginx'i apache yatırımları hakkında düşünmüyor musunuz? –

+0

Teşekkürler! Ama ne yazık ki nginx kullanmak bir seçenek değil. – stekhn

cevap

8

Sunucunuzun sonunda fazladan bir / var. Bunu değiştirmeyi deneyin:

ProxyPass /node http://localhost:3000 
+0

Çok teşekkür ederim. Bu hile yaptı. Şimdi kendime facepalm gideceğim. – stekhn

İlgili konular