2017-03-01 15 views
1

私のnodejsアプリケーションにセキュリティを追加したいと思います。Apache経由でnodejにアクセス

このため、apacheを使用してノードアプリケーションにアクセスするために、proxyReverseをApacheに追加しました。 それは働いているが、問題は、私のノードのサイトは、MYDOMAINである

...私はまだapacheのを経由せずに自分のノード・アプリケーションにアクセスすることができるよということです:8080/HTML/site.html 私はへのアクセス... MYDOMAIN /サイトに8080/HTML/site.html

しかし、私は無限の電話をかけることが怖いよ:MYDOMAIN /サイト上のApacheでノード

ので、私が欲しいものはmydomainをリダイレクトしています。

var express = require('express'); 
var port = 8080; 
/*------------------------ 
     Configuration 
------------------------*/ 
app = express(); 
app.use(express.static('public')); 

app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 

/* Port d'ecoute du serveur */ 
app.listen(port); 

はここに私のapache2.confです:私はあなたの助けやアドバイスを必要とする

<VirtualHost 172.30.0.10:80 > 
     ServerName "mydomain:80" 
     UseCanonicalName Off 


     ProxyPass /site http://mydomain:8080/html/site.html 
     ProxyPassReverse /site http://mydomain:8080/html/site.html 

     <Proxy *> 
       Order deny,allow 
       Allow from all 
       Authtype Basic 
       Authname "Password Required" 
       AuthUserFile /etc/apache2/passwords 
       Require valid-user 
     </Proxy> 

</VirtualHost> 

は、ここに私のノードserver.jsです!これを読んでくれてありがとう!

答えて

0

変更この:これに

app.listen(port); 

:Apacheの設定で

app.listen(port, 'localhost'); 

、代わりにmydomain:8080の使用localhost:8080

これは、ノード・アプリケーションにループバック・インターフェースでのみlistenするように指示し、それ自身とは異なるホストからの要求には応答しません。しかし、それが機能するには、同じマシン上にあっても、プロキシがループバック以外のインターフェイスを使用してノードアプリケーションに接続することができないため、プロキシ設定をlocalhostに変更する必要があります。

これを処理する別の方法は、TCP/IPレベルでパケットをフィルタリングすることですが、まず最初に特定のインターフェイスにバインドする方が簡単です。

関連する問題