我有一个nodeJS网络应用程序,Express运行在Digital Ocean droplet上。nodeJs应用程序提供后端API。我有两个react前端,使用不同域的API。前端可以托管在同一台服务器上,但我的开发人员告诉我应该使用另一台服务器托管前端。比如cloudflare。我读到nginX可以在同一台服务器上托管多个站点(即在同一台服务器上托管我的前端),但不确定这是否是一个好的做法,因为我可能无法使用cloudflare。
在安全方面,有人能告诉我,如果我需要nginx,我的选择,请?
谢谢
1条答案
按热度按时间i2byvkas1#
这是一个过于开放式的问题,但我会尝试回答它:
在安全方面,有人能告诉我,如果我需要nginx,我的选择,请?
在这两种情况下,您都需要Nginx(或Apache)。对于一个或多个服务器,无论是否使用Express,Express只是一个用于构建路由的应用程序框架,但您仍然需要一个响应网络请求的服务,这就是Nginx和Apache所做的。
你可以避免使用Nginx,但是那样的话,你的用户就必须直接向你启动Express的端口发出请求。http://my-site.com:3000/welcome 从安全Angular 考虑,您最好隐藏端口号和use a Nginx's reverse proxy,这样您的用户只需浏览 http://my-site.com/welcome。
我的开发人员告诉我应该使用另一台服务器来托管前端,例如cloudflare
Cloudflare目前还没有提供托管服务。它提供CDN来托管一些文件,但不是整个站点。你需要另一个Digital Ocean示例来做这件事。在一个Cloudflare's forum post中,我发现:* “Cloudflare不是主机。Cloudflare的基本服务是DNS提供程序,您只需在其中指向现有主机。"*
我了解到nginX可以在同一台服务器上托管多个站点
是的,Nginx(Apache也是)可以在同一台服务器上托管多个名称不同或相同的站点,作为域(www.my-backend.com,www.my-frontend.com)或子域(www.backend.my-site.com,www.my-site.com)。
...但不确定这是否是良好做法
这绝对不是一个坏的做法,在不同的子域上分开应用程序是很常见的。将它们放在不同的服务器上的一些合理的原因是:
从这些微服务(即获取PI值的微服务)中滥用将是一种不良做法