求靠谱的nginx生产环境配置文件,及一些疑问?

求白话回复,感谢!!!

tcp_nopush on;

tcp_nodelay on;

1.这两项为何不可同用?

2.open_log_file_cache项的作用,与access_log /logs/xx.log buffer=32k设置有什么不同,分别起什么作用,如何用于生产环境?

3.同时求一个在线靠谱完整的nginx.conf最好有语句说明

感谢!!!!!!!!!!

阅读 3.8k
4 个回答
  1. tcp_nopushtcp_nodelay 都是属于nginx 的 ngx_http_core_module 模块

clipboard.png

tcp_nodelay原文地址

我认为是在长链接情况(socket),没有延迟和缓冲.大白话将就是长链接情况下不阻塞发送返回

clipboard.png

tcp_nopush原文

在FreeBSD系统socket的选项 或者 linux上的 TCP_CORK socket 选项,
clipboard.png
(网图侵删)这个就是 TCP_CORK socket模式

这个选项都只在sendfile 开启下被使用
clipboard.png
这是sendfile 用途,这里不翻译的。继续说 tcp_nopush, 这里开启后1. 在linux和FreeBSD4.*上发送一个响应头和文件开头在一个包中2.用完整的数据包发送请求。(这里可能去去抓包亲测才行)

2.open_log_file_cache 属于 ngx_http_log_module

clipboard.png
定义一个缓存,用于存储名称中包含变量的常用日志的文件描述.变量看图示
access_log
设置缓冲日志写入的路径,格式和配置,后面的buffer,看下图:
clipboard.png
定义每次写入日志文件缓冲区域的大小

最后回答: open_log_file_cacheaccess_log 关系的话,可以说前者是后者产生日志文件的描述,仅此而已。

3.1楼的有一个nginx文件,里面配置挺全的。我不是服务器工程师也不是运维。具体线上如何玩更好,我没有答案。略献薄解,仅做参考。

tcp_nopush与tcp_nodelay相反。它的目标不是尽可能快地推送包,而是优化同时发送的数据量。它将强制包等待其达到最大大小(mss),然后再将其发送到客户端。此指令仅在sendfile为on时有效.

感谢楼上朋友,继续观望

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题