第六十九章 使用 NSD (UNIX® Linux macOS) - 示例 2:两个 Web 应用程序

文章目录

  • [第六十九章 使用 NSD (UNIX® Linux macOS) - 示例 2:两个 Web 应用程序](#第六十九章 使用 NSD (UNIX® Linux macOS) - 示例 2:两个 Web 应用程序)
  • [示例 2:两个 `Web` 应用程序](#示例 2:两个 Web 应用程序)
  • [将负载分散到多个 NSD 进程上](#将负载分散到多个 NSD 进程上)
    • [授予 `NSD` 管理员权限](#授予 NSD 管理员权限)

第六十九章 使用 NSD (UNIX® Linux macOS) - 示例 2:两个 Web 应用程序

示例 2:两个 Web 应用程序

要在两个独立的 NSD 安装(侦听 TCP 端口 7038 和 7039)之间分配两个 Web 应用程序(/csp1 和 /csp2)的负载,请将以下指令添加到 Apache 配置 (httpd.conf):

xml 复制代码
<Location /csp1>
    SetEnv CSP_NSD_PORT 7038
</Location>
<Location /csp2>
    SetEnv CSP_NSD_PORT 7039
</Location>

更改配置后重新启动 Apache。

如果 NSD 的多个实例正在运行,建议将单独的实例安装在单独的目录中,每个实例维护自己的配置和日志文件副本。通过使用 NSD 的内部 HTTP 服务器,可以轻松访问每个实例的 Web Gateway 管理页面。例如:

java 复制代码
http://localhost:7038/csp/bin/Systems/Module.cxw

http://localhost:7039/csp/bin/Systems/Module.cxw

将负载分散到多个 NSD 进程上

默认情况下,NSD 以双进程操作模式运行(一个父进程和一个子进程)。

但是,单个 UNIX® 进程可以启动的线程数是有限的。如果 Web 应用程序的并发负载导致请求排队等待可用线程,请考虑增加 NSD 使用的进程数。

java 复制代码
./CSPnsd --c=[no_processes]
  • 其中 no_processes 是要启动的子(或工作)进程的数量。

应该注意的是,将子进程的数量设置为 1 最好。

java 复制代码
./CSPnsd --c=1

在这种情况下,NSD 实际上启动了两个进程:一个父进程和一个子工作进程。使用"-c"指令时父进程的存在提高了 NSD 的弹性,因为如果其中一个工作进程出现故障,父进程可以替换该进程。对于单、多线程架构,NSD 并不总是能够从严重的内部错误情况中恢复。

在工作进程数量超过 1 的情况下,不应使用状态感知连接(保留模式 1)。

授予 NSD 管理员权限

NSD (CSPnsd) 组件的管理员可以对允许启动/停止此服务的用户(或组)进行一些控制。

在默认情况下,将创建 CSPnsd 主进程 ID (PID) 文件 (CSPnsd),以便只有启动该服务的用户才能随后将其关闭。

例如,管理员现在可以选择允许属于当前 UNIX® 组的所有用户管理该服务。这是管理用户所属的组。

java 复制代码
NSD start-up option: [-m=s]
     Define the user(s) permitted to manage this service
          where 's' is:
               'u' for the current user (the default),
               'g' for the current group,
               'o' for others,
               'a' for everyone (m=ugo),
java 复制代码
./CSPnsd -m=ug

这允许当前用户和当前用户组中的所有其他人管理 NSD。

当发出停止 NSD 的命令时,它首先尝试向 CSPnsd 父进程发出信号,像以前一样关闭。如果由于服务已由其他用户启动而无法实现,则会将一个标志写入 CSPnsd.ini 文件,并且服务在确认此标志后会正常关闭自身。此过程最多需要 20 秒才能完成。

相关推荐
IMPYLH11 分钟前
Linux 的时间为什么会被拨回去
linux·运维·服务器
叼烟扛炮2 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
xbzb2 小时前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
Android系统攻城狮4 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
水饺编程5 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zevalin爱灰灰5 小时前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
倔强的石头1065 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器
GeW5 小时前
从"补短板"到"强优势"Linux与数据库认证成为产业跃迁人才支点
linux·数据库
PellyKoo7 小时前
【Ubuntu】GTX 1080 Ti 显卡占用为0但功率高达60W的排查与解决
linux·运维·ubuntu
Fruiticecake8 小时前
epoll 回显服务器是怎么工作的:从 accept 队列到就绪链表,以及它和 select / poll 的区别
linux