小编Ere*_*bih的帖子

无需停机即可重新加载新的 Nginx 配置

我有一个 Nginx 服务器,它不断地处理高负载的请求。我希望能够更改服务器的配置文件并在零停机时间的情况下动态重新加载它。

我在 shell 中运行以下行:

httperf --server=127.0.0.1 --port=80 --uri=/ --num-conns=1 --num-calls=10
Run Code Online (Sandbox Code Playgroud)

当它发送请求时,我正在重新加载我的 nginx 配置。我尝试了以下两个选项:

sudo nginx -s reload

sudo kill -s HUP [pid]
Run Code Online (Sandbox Code Playgroud)

它们都会导致 httperf 返回一些错误。平均而言,在两次良好的请求后,httperf 会退出并打印其日志,相关行如下:

Errors: total 1 client-timo 0 socket-timo 0 connrefused 0 connreset 1
Run Code Online (Sandbox Code Playgroud)

我在很多地方都读到过,重新加载应该无缝地完成,没有停机时间,但从我运行的测试来看,事情似乎有所不同。

我的问题是:

  1. 我是否以错误的方式执行测试?为什么我会重置此连接?
  2. 这个问题有解决方案吗?
  3. 我实际上需要一个负载平衡器,我可以从中动态添加和删除服务器,有没有适合我的问题的更好的解决方案?

在此先感谢您的帮助,期待看到一些有见地的答案。

linux nginx load-balancing

5
推荐指数
1
解决办法
2982
查看次数

标签 统计

linux ×1

load-balancing ×1

nginx ×1