IT이야기

동일한 포트에서 여러 노드(Express) 앱 실행

cyworld 2021. 9. 15. 21:14
반응형

동일한 포트에서 여러 노드(Express) 앱 실행


여러 노드 응용 프로그램(Express 프레임워크 기반)이 있습니다.

이제 나는 그것들을 이렇게 배치했습니다 -

  • /var/www/app1
  • /var/www/app2
  • /var/www/app3

이제 동일한 포트(예: 8080)에서 이 3개의 앱을 실행하고 싶습니다. 그게 가능합니까?

한 가지 주의할 점은 각 앱에는 다음과 같은 공통 경로가 있습니다.

  • app.get('/', func...);
  • app.get('/about', func...);
  • app.post('/foo', func...);
  • app.post('/bar', func...);

기본적으로 Apache/PHP 설정에서 할 수 있는 것처럼 하고 싶습니다.

따라서 다음이 있을 때 LAMP 스택을 사용합니다.

  • /var/www/app1
  • /var/www/app2
  • /var/www/app3

다음에서 다른 앱으로 쉽게 액세스할 수 있습니다.

  • localhost/app1
  • localhost/app2
  • localhost/app3

다음을 사용할 수 있습니다 app.use().

app
  .use('/app1', require('./app1/index').app)
  .use('/app2', require('./app2/index').app)
  .listen(8080);

다른 포트를 수신하는 별도의 앱으로 실행한 다음 요청된 URL에 따라 8080에서 모든 것을 제공 하는 프록시(예: https://github.com/nodejitsu/node-http-proxy/ ) 를 가질 수 있습니다 .

처럼:

var options = {
  router: {
    'foo.com/baz': '127.0.0.1:8001',
    'foo.com/buz': '127.0.0.1:8002',
    'bar.com/buz': '127.0.0.1:8003'
  }
};

나를 위해 매력처럼 작동합니다 ( http://nerdpress.org/2012/04/20/hosting-multiple-express-node-js-apps-on-port-80/ ). 나는 그들이 독립적으로 실행되기를 원했기 때문에 의견에서 제안한 것처럼 하위 앱으로 마운트하는 데 그다지 열중하지 않았습니다 ...


앱과 병렬로 하나의 기본 앱(예: 앱)을 만들고 app.use('', require('./app1/yourApp.js)를 사용하여 보조 앱(귀하의 경우 app1, app2, app3)을 초기화하도록 할 수 있습니다. ').

모든 앱(app1, app2, app3)은 var app = module.exports = express();를 사용하여 앱을 만들고 내보내야 합니다. 모든 하위 앱에서 서버의 인스턴스를 생성하거나 app.listen을 호출할 필요가 없습니다. 모든 하위 앱은 기본 앱 수신 포트를 통해 제공될 수 있습니다.

참조URL : https://stackoverflow.com/questions/11225983/running-multiple-node-express-apps-on-same-port

반응형