0

내 앵글 러 앱에 prerender을 사용하고 프로덕션 환경, 특히 Heroku에서 구현하는 방법에 대해 생각하는 데 어려움이 있습니다.Node.js를 사용하여 Prerender.io를 프로덕션에 배포하기

그래서 나는 localhost에, 나는 localhost:9000에 내 응용 프로그램을 실행할 수 있습니다 후 다른 터미널에 localhost:9001을 말에 prerender의 인스턴스를 실행할 문서에서 이해합니다. 내가 말할 수있는 prerender-node 미들웨어를 사용하여 다음 : 이해가 안 무엇

app.use(require('prerender-node').set('prerenderServiceUrl', 'http://localhost:9001'));

내가 대신 localhost:9000prerender 서비스를 실행할 수있는 방법인가? prerender을 실행하기 위해 완전히 새로운 서버를 설치하고 싶지 않습니다. 별도의 서버에 대한 나의 가장 큰 관심사는 프로덕션 환경에서 어떻게 호출 할 것인가? URL을 my-prerender-server.com과 같이 설정해야하는데 그 도메인을 구입해야합니까? 이것은 어리 석게 보일지도 모르지만 나는 그것을 어떻게 좋고 단순하게 유지할 수 있습니까? 가능하다면 하나의 응용 프로그램에서 모두 실행하고 싶습니다 ...

어떤 아이디어 또는 팁?

답변

0

저는 각도 1 앱의 크롤러를 처리하기 위해 프리 렌더링 및 노드 프리 렌더를 사용합니다.

다른 도메인/포트를 수신하는 두 대의 서버를 만들어야합니다. 가장 쉬운 방법은 prerender.company.com과 같은 하위 도메인을 만드는 것입니다. 무료이며 DNS에서 쉽게 구성 할 수 있어야합니다.

vhost과 같은 단일 프로세스에서 두 서버를 모두 실행할 수는 있지만 두 개의 서버를 실행하는 것이 더 쉽고 간단합니다.

+0

자체 호스팅 솔루션을 사용하면서 설정을 약간 확장 할 수 있습니까? 로컬에서 테스트 할 때 필자는 문자 그대로'prerender' 데모 애플리케이션을 다운로드하고'localhost : 9000'을 듣기 위해 서비스를 바인딩하기 위해 온라인에서 본 임의의 명령을 사용했습니다. 'node-prerender' 라이브러리는 URL을 설정하는 한 줄의 코드를 포함하는 간단한 경우처럼 보이지만 솔루션을 개발할 때 특별히해야 할 일이 있습니까? – germainelol

+0

'node-prerender'는 간단한 한 줄짜리 코드입니다. 서버는 데모와 거의 동일하며 구성이 매우 쉽습니다. 'process.env.PORT' 등을 설정하여 포트를 변경할 수 있습니다. 우리의 각형 응용 프로그램에서는'window.prerenderReady = true'를 사용합니다. 이것은 프리 렌더링에 필요한 모든 자원이로드 될 때 설정하도록합니다. 우리는 또한 문제없이 s3 캐시 플러그인을 설정합니다. – Thorning

+0

감사합니다. 그래서'node-prerender'는 요청이 봇으로부터 온 것인지 아닌지를 결정할 것입니다. 'window.prerenderReady = true'를 할 때 어떤 종류의 것들을 확인합니까? 그리고이 'prerenderReady' 변수를 서버에 전달하여 HTML 렌더링을 시작할 때를 알 수 있습니까? – germainelol