2016-12-06 7 views
3

ドメイン/パスを使用して問題nginxの:同じサーバー上で複数のノードのjsのアプリケーション

私はいくつかのノードのjsのアプリを持っている場合、私はなどmydomain.com/app1、mydomain.com/app2、としてそれを公開したい場合は、私は '/'app.get( '/ APP1'app.getを変更する必要があり、また、いくつかのcss、jsの例とイメージパスインチ

質問

いつもあなた万一aを変更するアプリケーションをドメイン/パスに割り当てる場合は、

アプリケーションを独立させる方法はありますか?

nodejsまたはnginxの設定はありますか?

これは例として使用されるノードJSアプリです:これはmydomain.com(!作品)

server { 
    listen 80; 
    server_name mydomain.com; 

    location/{ 
    proxy_pass http://localhost:8080/; 
    } 
} 
のための私のノードのjsのアプリケーションのための私のnginxの構成である

https://github.com/jrichardsz/responsive_web1.1/blob/master/server.js

ノードアプリケーション:

app.get('/', function(req, res) { 
    // ejs render automatically looks in the views folder 
    res.render('index'); 
}); 

これは私が同じノードjsのアプリのための私のnginxの構成であるが、mydomain.com/app1(作品!)

server { 
    listen 80; 
    server_name mydomain.com; 

    location /app1/ { 
    proxy_pass http://localhost:8080/app1/; 
    } 
} 

そして、これは

app.get('/app1', function(req, res) { 
    // ejs render automatically looks in the views folder 
    res.render('index'); 
}); 

ノードjsのアプリで修正です試してみました:

https://github.com/expressjs/express-namespace

http://expressjs.com/en/4x/api.html

どちらの場合でも、ノードjsアプリケーションを変更する必要があります。

ありがとうございます。

答えて

4

ドメイン/パスを割り当てる場合は、常にアプリケーションを変更する必要がありますか?

いいえ、アプリケーションをまったく変更する必要はありません。

このようにproxy_passを使用する場合は、URLをregexで書き換える必要があります。このような何かを試してみてください:

location ~ ^/app1/(.*)$ { 
    proxy_pass http://localhost:8080/$1$is_args$args; 
    } 

も参照してください:https://serverfault.com/q/562756/52951

+0

おかげでブラッドを。私の場合は、localhostを127.0.0.1に変更し、あなたの例で動作します。私は、この要求に関連するが、 "リダイレクト"に関する別の質問があります。本当にありがとう!! – JRichardsz

関連する問題