总是运行nginx调试是否不好?

总是运行nginx调试是否不好?,nginx,Nginx,我正在阅读,它说要打开调试,必须以某种方式编译或启动nginx,然后更改配置选项。我不明白为什么这是一个两步的过程,我推断这意味着,“你不想在调试模式下长时间运行nginx,即使你没有记录调试消息,因为它不好” 既然配置选项(error\u log)已经设置了日志记录级别,我就不能总是在调试模式下编译/运行并在需要查看调试级别日志时更改配置吗?这有什么坏处?如果我在调试模式下编译/启动nginx,即使我没有记录调试消息,它是否会运行得更慢 首先,要在调试中运行nginx,您需要运行nginx调试

我正在阅读,它说要打开调试,必须以某种方式编译或启动nginx,然后更改配置选项。我不明白为什么这是一个两步的过程,我推断这意味着,“你不想在调试模式下长时间运行nginx,即使你没有记录调试消息,因为它不好”


既然配置选项(
error\u log
)已经设置了日志记录级别,我就不能总是在调试模式下编译/运行并在需要查看调试级别日志时更改配置吗?这有什么坏处?如果我在调试模式下编译/启动nginx,即使我没有记录调试消息,它是否会运行得更慢

首先,要在调试中运行nginx,您需要运行nginx调试二进制文件,而不是正常的nginx,如nginx文档中所述。如果不这样做,那么将错误日志设置为debug就无关紧要了,因为它不起作用。 如果你想知道为什么这是一个两步的过程,我不能告诉你为什么做出这样的决定

Debug会抛出大量日志、fd信息等,因此它会降低系统的速度,例如,因为它必须写入所有日志。在dev服务器上,也就是说,在具有数百或数千个请求的生产服务器上,您可以看到该日志生成的磁盘I/O如何导致服务器速度减慢,以及其他服务如何在等待一些空闲磁盘I/O时陷入困境。此外,磁盘空间也可能很快耗尽

另外,始终以调试模式运行的原因是什么?你在那些日志里有什么特别的东西吗?我想我想知道你为什么想要它


也许值得一提的是,如果您确实想在生产环境中运行debug,至少使用
debug\u connection
指令并只记录某些IP。

当您在日志级别设置为低的情况下运行
nginx debug
时(例如,
error\u log/var/log/nginx/error.log error;
),所有这些都适用吗?我们希望使用一个标准的docker映像,并在需要更多日志记录时更改配置。运行
nginx debug
需要一些额外的步骤,当您将docker加入其中时,这会很方便地避免。如果您以正常的错误日志级别运行nginx debug,它将运行得很好,并且不会增加任何开销-日志将与您使用nginx时的日志相同。很酷,这就是我所希望的。尽管我仍然想知道,当一个配置选项已经提供了nginx的特性时,为什么还要用另一种方式来运行nginx呢。