私はこのようなことをやろうとしています:
// Setup prox to handle blog requests
httpProxy.createServer({
hostnameOnly: true,
router: {
'http://localhost': '8080',
'http://localhost/blog': '2368'
}
}).listen(8000);
以前はこれを使用していました:
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
基本的に、私は引き続きエクスプレスを使用したいと思います...しかし、人々がhttp://localhost/blog
に行くと、ブログに連れて行かれますが、それでもport 8080
(最終的にはポート80になります)で提供されます
だから私はこれに切り替えました、そしてそれはよりうまくいきました。問題は、エクスプレスがルーティングを引き継ぐことです(私が言えることから)
var options = {
// pathnameOnly: true,
router: {
'localhost': 'localhost:8080',
'localhost/blog': 'localhost:2368'
}
}
// Setup prox to handle blog requests
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(9000);
require('./app/server/router')(app);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
Expressでhttp-proxy 1.0を使用する:
var httpProxy = require('http-proxy');
var apiProxy = httpProxy.createProxyServer();
app.get("/api/*", function(req, res){
apiProxy.web(req, res, { target: 'http://google.com:80' });
});
express-http-proxy
を使用して、シームレスに、Cookie /認証でも機能する非常に簡単なソリューション:
var proxy = require('express-http-proxy');
var blogProxy = proxy('localhost/blog:2368', {
forwardPath: function (req, res) {
return require('url').parse(req.url).path;
}
});
そして単に:
app.use("/blog/*", blogProxy);
このパーティーに参加するのが遅いのはわかっていますが、これが誰かのお役に立てば幸いです。
私はこれを手に入れました。
npm install http-proxy
ウェブアプリ内Ghostサービスへのリクエストをプロキシする/ blog *のワイルドカードルートを作成する
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
});
});
サブディレクトリを使用するようにGhost構成を更新します(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',
...
これで http://yoursite.com/blog を押すことができ、すべてのルートが機能します。