当前位置: 首页 > 知识库问答 >
问题:

Nginx和Node.js-充分利用服务器

越狐若
2023-03-14

出于实验/学习目的(假设我的应用程序有很多持久/并发流量),我有一个运行docker的虚拟机。对于docker,我有以下设置:

所有东西都有自己的容器,并与端口通信。我试图模拟两个不同的服务器(Nginx),通过HAProxy实现负载平衡。

现在它工作得很好,但是据我所知,节点仍然只在单线程中运行。

Nginx包含的唯一配置是作为节点的反向代理(其他所有配置都是默认配置)。每个Nginx服务器只处理每个服务器(节点)的一个域。

>

  • 我应该使用节点集群的多线程方法?

    或者(假设每台服务器有2个内核),我应该为每台Nginx服务器创建两个节点实例并进行负载平衡吗?在这种方法中,我不确定负载平衡将如何工作。如果有两个节点实例,通过Nginx(或HAProxy)进行负载平衡,那么它将类似于:

    现在我想要Nginx的原因是静态缓存和DDOS保护之类的东西。这真的有意义吗?或者我应该在没有HAProxy的所有四个节点服务器之间只有一个Nginx负载平衡(我引入HAProxy的原因是因为一些研究表明它比Nginx更快/更可靠(未经证实))。

    这还是新的。基本上,我想模拟两个服务器,每个内核运行Node.js,由Nginx反向代理静态缓存等。,并由HAProxy负载平衡。

  • 共有1个答案

    公西翼
    2023-03-14

    找到了答案(不久前,但只是更新了这篇文章,以防对某人有所帮助)。

    Nginx可以运行多个辅助进程。因此,我们可以使用多个虚拟服务器块来实现这一点。我对Docker/Nginx/Node采用的当前方法是:

    >

  • nginx服务器块1:它监听端口81上的所有请求。这将所有这些请求转发到一个节点实例(我们称之为node1)。

    Nginx服务器块2:侦听端口82上的所有请求。并将它们全部转发到另一个节点实例(我们称之为node2)。

    简单地说,一个服务器块与node1通信,另一个与node2通信,其中node1和node2是两个节点实例(单独的docker容器)。

    然后这些负载由HAProxy平衡。其中服务器配置如下(按照docker):

    server n1 nginx:81
    server n2 nginx:82
    

    nginx是容器名。nginx目前运行2个辅助进程。(添加所需的超文本传输协议/tcp检查,这只是最小的配置)。

    接受更好方法的建议。

  •  类似资料:
    • 本文向大家介绍利用nginx + fastcgi实现图片识别服务器,包括了利用nginx + fastcgi实现图片识别服务器的使用技巧和注意事项,需要的朋友参考一下 背景 使用的特定的设备进行深度学习模型的推理,该机器仅仅提供了C++封装好的API进行模型的加载启动与推理,模型的训练依然是使用caffe,模型需要转化成该设备支持的格式,模型的转化这里就不在介绍。为了把模型的推理做成一种服务,只能

    • 问题内容: 我当前的nginx配置是这样的: 我对nginx非常陌生,但是至少我知道nginx在提供静态文件方面比node / express好。如何配置服务器,以便Nginx提供静态文件? 问题答案: 我使用以下新配置解决了该问题: 感谢以下Stack Overflow帖子:

    • 利用D-Bus服务 D-Bus系统是可以匿名访问的,跨进程通讯经常会使用D-Bus系统。我们认为,D-Bus系统本不应该会暴露,所以,我们有点意外,利用D-Bus来运行代码居然是可行的。 获取代码执行 你已经发现了D-Bus服务暴露在了端口6667上,并且这个端口是在Uconnect系统上运行的。所以,我们认为通过不认证办法来执行代码是最好的方式。在一开始的时候,我们就怀疑过这个服务,因为这个服务

    • 本文向大家介绍利用nginx与ffmpeg搭建流媒体服务器过程详解,包括了利用nginx与ffmpeg搭建流媒体服务器过程详解的使用技巧和注意事项,需要的朋友参考一下 需求 本文介绍的是利用nginx和ffmpeg搭建流媒体服务器的过程。例如这种场景:公司内部需要同时观看在线直播时,如果每个人直接观看必然给出口带宽带来压力,影响正常访问外网的同事。所以可以在内网通过nginx+ffmpeg拉一路直

    • 本文向大家介绍利用nginx搭建静态资源服务器的方法步骤,包括了利用nginx搭建静态资源服务器的方法步骤的使用技巧和注意事项,需要的朋友参考一下 以windows为例,linux其实一样; 搭建静态资源服务器 我电脑上的work文件夹下面有很多图片,我想通过nginx搭建静态资源服务器,通过在地址栏输入ip+port的方式完成目录的映射 找到nginx安装目录,打开/conf/nginx.con

    • 问题内容: 我对node.js相当陌生,并且发现随着项目规模的扩大,将一个项目分成多个文件非常复杂。我之前有一个大文件,可以同时用作多人HTML5游戏的文件服务器和Socket.IO服务器。理想情况下,我想将文件服务器,socket.IO逻辑(从网络读取信息并将其写入带有时间戳的缓冲区,然后将其发送给所有其他播放器)和游戏逻辑分开。 使用socket.io中的第一个示例来演示我的问题,通常有两个文