集成TomCat和节点服务器

时间:2018-03-26 10:10:48

标签: angularjs node.js angular jsp tomcat

我在开发期间在TomCat服务器上部署了一个现有的JSP,Anuglar 1应用程序。我想逐个将JSP页面迁移到Anuglar 2+。

我正在为Angular 2+迁移页面使用Node / NPM。是否可以在TomCat服务器中设置代理,以便每当请求有角度的2+页面时,它会将用户重定向到节点服务器以提供Angular 2+页面?

我理解Angular 2+页面可以直接复制到TomCat服务器,但是需要额外的编译步骤才能将它们转换为静态JS页面。我想直接从Node服务器为他们提供服务,以便更快地开发。

2 个答案:

答案 0 :(得分:1)

首先,你真的不应该动态地提供angular页面。即使你是从node提供服务,也要提供已编译的静态页面而不是ng serve - 出于安全性,性能和其他原因。

说完了,确定你能做到这一点。这取决于您的设置,但归结为您需要将所有angular页面代理到node服务器。这与Angular本身没什么关系。

因此,最简单的方法是告诉Apache(或nginx或Tomcat前面的任何人)将所有404代理到node服务器。然后,node将呈现angular网站,而这又会与网址匹配并呈现给定网页,如果找不到,则会呈现自己的404版本。

或者,提供您的apache或其他任何一个特定的URL列表(已经移植过)以传递到node服务器。

如果您不使用Apache,但直接从Tomcat提供服务(您不应该),则可以使用this之类的内容。< / p>

答案 1 :(得分:0)

Tomcat本身没有内置反向代理。但是,如果在应用程序中实现代理(即作为servlet或过滤器),则可以完成您所要求的内容。

为此,您可以使用现有软件,例如Netflix Zuul,或者如果您正在使用Spring Spring Cloud Netflix。 Zuul具有比反向代理更多的功能,但它可以用于生产和开发。

Tomcat Wiki有更多选项,我相信你可以通过搜索类似&#34;反向代理服务器&#34;这样的东西来调高。如果这是你将要投入生产的东西,并测试你最终使用的解决方案的性能和安全性,请小心。

您还可以在Tomcat&amp ;;之前放置传统的反向代理,如Apache HTTPD或Nginx。您的节点服务器,但在开发人员计算机上运行还有一件事。

希望有所帮助!