将AngularJS应用程序部署到vanilla Apache HTTP服务器是一种常见的选择吗?

JBT*_*JBT 22 node.js angularjs

我很好奇AngularJS应用程序通常部署在什么类型的服务器上,而谷歌没有给出满意的答案.特别是,在我看来,AngularJS应用程序只是静态文件的集合,所以将这样的应用程序部署到生产中的vanilla Apache HTTP服务器中是否常见?或者是轻量级的Node.js服务器首选?

非常感谢你.

mar*_*rni 18

我运行nginx来提供静态AngularJS内容.后端功能由NodeJS服务器提供,该服务器提供所有必需的动态内容并回答来自客户端的REST请求.Nginx将动态查询路由到NodeJS,并直接提供静态内容.客户端和服务器端逻辑都使用相同的语言(JavaScript或CoffeeScript)编写.

这样做的最大好处是我们可以分别对客户端静态内容和后端内容进行负载平衡.这取决于您的应用程序的大小以及它对动态内容访问的要求.

关于部署AngularJS主题的​​其他一些帖子:


Mat*_*aly 10

任何像AngularJS这样的客户端框架都不会因为使用纯粹的Apache安装而受到轻微打扰,因为它是纯粹的客户端JavaScript.

也就是说,这是一个罕见的单页Web应用程序,通过AJAX至少没有与Web服务器进行某些交互,以便获取和修改存储在那里的数据,这就是您可能需要考虑应该使用哪个服务器的地方小心.最终,您可以使用您认为最合适的服务器端技术构建您的后端,无论是PHP,Python,Ruby,Node还是其他什么,您选择的服务器将由您选择的客户端更多地决定框架.

我将补充一点,我经常听说Nginx比Apache更快地提供静态文件,以至于有时候值得使用Nginx来获取静态文件并反向代理Apache以获取动态内容.因此,对于单页面Web应用程序,使用Nginx比使用Apache更有意义.就个人而言,我已经将Nginx与Gunicorn用于Django应用程序,而且据我所知,它也常用于Ruby和Node.js应用程序.在Node.js的上下文中,我不认为Node通常用于在生产中提供静态文件,而且据我所知,更常见的安排是让Nginx提供静态文件并反向代理到Node应用程序其他一切.

  • 一切都正确,但我补充一点,因为应用程序由静态文件组成,你也可以**使用CDN**,甚至根本不处理服务器.(提供支持应用程序的数据API是一个不同的,完全独立的问题.我们通过CDN提供应用程序文件,通过Sinatra应用程序提供数据API.) (2认同)