如何在Nginx配置文件中设置最大mss

时间:2018-09-18 13:42:00

标签: nginx networking tcp proxy network-programming

我使用nginx作为代理,我想知道如何在nginx配置中调整mss大小的最大大小。我还没有找到任何相关的配置选项。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我认为您指的是TCP_MAXSEG TCP option in Linux-设置传出TCP数据包的最大段大小。有一个patch submitted to the Nginx mail list添加了该功能,但似乎没有被接受。因此,有效限制MSS的唯一方法是在连接Nginx的网络接口上设置MTU。之所以可行,是因为MSS始终小于接口MTU。但这将影响绑定到该接口的所有进程。例如,将eth0 MTU更改为1492:

sudo ip link set eth0 mtu 1492

正如您在评论中提到的那样,Nginx postpone_output选项确实与MSS相关-应该在其中设置MSS-尽管它默认为1460(对于IPv4是通用MSS,但对于IPv6则不是MSS) 。但是,正如@Ron的评论中所提到的那样,不能在应用程序级别直接设置MSS,因为它是在每个连接的TCP级别上协商的(因此它可以更改)-这可以通过Path MTU discovery执行,也可以通过更多这些天通常是由MSS限制(网络实体在SYN和SYNACK数据包的TCP标头中更改MSS TCP选项)。