我在开发期间在TomCat服务器上部署了一个现有的JSP,Anuglar 1应用程序。我想逐个将JSP页面迁移到Anuglar 2+。
我正在为Angular 2+迁移页面使用Node / NPM。是否可以在TomCat服务器中设置代理,以便每当请求有角度的2+页面时,它会将用户重定向到节点服务器以提供Angular 2+页面?
我理解Angular 2+页面可以直接复制到TomCat服务器,但是需要额外的编译步骤才能将它们转换为静态JS页面。我想直接从Node服务器为他们提供服务,以便更快地开发。
答案 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。您的节点服务器,但在开发人员计算机上运行还有一件事。
希望有所帮助!