2017-04-27 12 views
-3

私はMAMPサーバーとノードjsを使用しています。同じポート上でapacheサーバーとノードを実行

私の問題は、同じポート上でapacheサーバーとノードを実行したいのですが、オンラインのソリューションは、あまり目的のサーバーではないため、かなり複雑です。 私はApacheサーバーのポートにノードを置くことができる単純なソリューションが必要です。

コードは、すべてが別のポートで実行されているが、私は、Apacheが実行されているポート8888上で実行するための「サーバー」をしたいと、それは、正常に動作し、以下の

です。またはノードがApacheと対話するための何らかの方法

var express = require('express'); 
var app = express(); 
var server = require('http').createServer(app); 
var io = require('socket.io').listen(server); 
var mysql = require('mysql'); 
var router = express.Router(); 

var connection = mysql.createConnection({ 
    host : 'localhost', 
    user : 'root', 
    password : 'root', 
    database : 'db', 
    port : '8889' 
}); 

server.listen(8888); <----- ERROR 
console.log('server running.......'); 

connection.connect(function(error){ 
    if(!!error) { 
     console.log('error in db connection'); 
    } else { 
     console.log('db connected'); 
    } 
}); 

app.use('/*', router); 

router.get('/*', function (req, res) { 
    console.log('hello there...'); 
}); 
+0

私はそれが可能ではないと思う。 –

+0

@FrankRothと同意する。 –

+0

私はインターネット上で見つけたもの、ほとんどのソリューションはHTTPプロキシを使用していましたが、私の場合はどのように使用するのか分かりません。 –

答えて

0

http-proxyを使用できます。

var http = require('http'), 
httpProxy = require('http-proxy'), 
proxyServer = httpProxy.createServer ({ 
    hostnameOnly: true, 
    router: { 
     '127.0.0.1':  '127.0.0.1:8080' 
    } 
}); 

proxyServer.listen(8888); 

これは、ポートを聞いたノード・プロセスを作成し、に要求されたドメインを転送します。

0

あなたは、このトピックに関する多くのチュートリアルを見つけることが、ここで概要を説明します:

  • あなたがthisようなものが必要にApacheのmod mod_proxy

  • basiclyのセットアップ、 このリンクはどのようにinsturctionsを含ん必要方法で設定するには、WebSocketも転送します(必要な場合)。

  • のようなものを使用します。http://localhost:3005ここで、3005はnodejsが動作するポートです。私はこれを行うための適切な方法は、顔」にあると思い

0

あなたに、このポートを追加するには便利かもしれません

  • を(アパッチなし)の直接アクセスを防止するために、iptablesの(あなたが好きなポートを選択) ApacheのProxypassを使ったNodeサービスこれにより、別のポートで実行されているノードサービスにパスが転送されます。

    あなたのhttpd.confやバーチャルホストの下に以下とApacheはポート8890.

    を上で実行しているノードのサービスに接続されますあなたのhttp://localhost:8888/node/への移動作業結果

    #I'm using 8890 for Node since your Apache runs on 8888 and DB is on 8889 
    ProxyPass /node/ http://localhost:8890/ 
    ProxyPassReverse /node/ http://localhost:8890/ 
    

    を与える必要があります再起動の追加

  • 関連する問題