동일한 포트에서 여러 노드(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
'IT이야기' 카테고리의 다른 글
os.sep 또는 os.path.sep 중 어느 것을 사용해야 합니까? (0) | 2021.09.15 |
---|---|
handler.postDelayed를 취소하는 방법은 무엇입니까? (0) | 2021.09.15 |
LDAP 사용자의 자격 증명을 테스트하는 쉬운 방법 (0) | 2021.09.14 |
라이센스 계약 단계 없이 부트스트래퍼 응용 프로그램을 만드는 방법 (0) | 2021.09.14 |
IE 10 및 11에서 마우스 휠로 스크롤할 때 고정된 배경이 점프합니다. (0) | 2021.09.14 |