2016-10-02 14 views
0

現在、デジタル海水滴がドメインに接続されています。サーバー上でNGINXを実行していて、複数のノードアプリケーションをプロキシにリバースプロキシしようとしています。現在、私のルートディレクトリには、場所/に1つのノードエクスプレスアプリがあります。サブディレクトリにNGINXを持つ複数のノードアプリケーション

別のノードエクスプレスアプリケーションを別のサブディレクトリに接続しようとしています。ここでnginxの設定ファイルです:

server { 
    listen 80; 

    server_name servername.com; 

    # my root app 
    location/{ 
     proxy_pass http://127.0.0.1:6001; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 

    # new app 
    location ~^ /newapp { 
     proxy_pass http://127.0.0.1:6002; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

問題は新しいアプリが破壊される/ newapp、外のファイルを提供しようとしていることです。私はおそらく私のapp.jsファイルの中で、新しいアプリケーションでExpressを使って遊んで、/ newapp /としてベースディレクトリを設定して静的なファイルとそこからのルートを提供すると思っています。これを行う方法に関するアイデア? newappで

、私のような静的なファイルを提供しています:

// Serve files out of ./public 
app.use(express.static(__dirname + '/public')); 

とルートファイルを持っているとして:

まず
var express = require('express'); 
var router = express.Router(); 

// Get index page 
router.get('/', function(req, res, next) { 
    res.render('index', { 
     index : 'active' 
    }); 
}); 

module.exports = router; 

答えて

0

var index = require('./routes/index'); 
app.use('/', index); 

インデックスルーティングファイルとあなたがそれを必要としないなら、regexpの場所を使わないでください。シンプルな場所を使用します。あなたの質問については、/をproxy_pass URIの最後に付けてください。 Nginxは/ newapp/xxxを/ xxxに、そうでない場合はhttpリダイレクトを書き換えます。しかし、(!)はHTML本文のリンクを書き換えません。

location /newapp/ { 
    proxy_pass http://127.0.0.1:6002/; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Host $host; 
    proxy_cache_bypass $http_upgrade; 
} 
関連する問題