调整 /etc/security/limits.conf
* soft nofile 65535 * hard nofile 65535
ulimit -n 65535 ulimit -Hn 65535
调整 /etc/sysctl.conf
# TCP SYN cookies是一种防范DDoS攻击的机制,用于保护服务器免受TCP SYN洪水攻击的影响。 # 在TCP三次握手建立连接的过程中, # 攻击者可能发送大量的TCP SYN请求,占用服务器资源并导致服务不可用。 # 当启用TCP SYN cookies时,服务器可以在接收到TCP SYN请求后通过计算一个特殊的cookie来响应客户端。 # 这个cookie包含了一些与连接相关的信息,如源IP地址、目标IP地址、端口号等。 # 如果客户端的后续请求中包含了正确的cookie, # 服务器会根据该cookie恢复连接并建立正常的通信。 # TCP SYN cookies的主要目标是在服务器不会消耗大量资源的情况下,防止服务器因SYN洪水攻击而拒绝服务。 # 它通过避免在服务器端维护半开连接状态,而是将连接的一些信息编码为cookie发送回客户端,减轻了服务器的负担。 # 需要注意的是,TCP SYN cookies可在操作系统或网络设备上进行配置。启用TCP SYN cookies可能会对网络性能产生一定影响, # 并且在某些情况下可能与现有的网络设备或应用程序不兼容。 # TCP SYN cookies可以帮助服务器在高并发场景下保护自身免受TCP SYN洪水攻击的影响,提高系统的可用性和稳定性。 net.ipv4.tcp_syncookies = 1 # 表示是否允许在处于TIME_WAIT状态的套接字上重用本地地址和端口。在TCP连接关闭过程中, # 会进入TIME_WAIT状态一段时间,保证连接中残留的报文段在网络中被清除。 # 启用TCP_TW_REUSE参数后,操作系统可以允许处于TIME_WAIT状态的套接字在短时间内被重用, # 以满足高并发场景下的连接需求。这样可以有效地减少端口耗尽的问题,并提高系统的连接复用能力。 # 需要注意,在高并发环境下启用TCP_TW_REUSE参数可能会存在一些风险。 # 当处于TIME_WAIT状态的连接被重用时,旧连接可能会和新连接发生冲突,导致数据混乱或安全问题。 net.ipv4.tcp_tw_reuse = 1 //减少连接断开后的等待时间。 net.ipv4.tcp_fin_timeout = 30 # 高并发环境中可能会有大量的TCP连接处于空闲状态,即没有数据交换的状态。在这种情况下, # 长时间保持这些空闲连接可能会浪费服务器资源,并且可能会降低系统的处理能力。 # 通过设置较短的TCP_KEEPALIVE_TIME参数,可以及时检测和关闭空闲的TCP连接, # 有效地释放服务器资源,提高系统的处理能力和效率。 net.ipv4.tcp_keepalive_time = 1200 # 参数决定了可以用于本地应用程序的端口范围 # 如果不修改,可能端口不够用 net.ipv4.ip_local_port_range = 1024 65000 //扩大TCP连接的半连接队列的大小,增加服务器可以处理的连接请求数量 net.ipv4.tcp_max_syn_backlog = 262144 # 参数限制了系统内核可以同时维持的 TIME-WAIT 连接的数量。 设置较大的值可以容纳更多的连接,但会增加系统内存的使用。 net.ipv4.tcp_max_tw_buckets = 10000
sysctl -p
调整 /etc/systemd/system.conf
# systemd 参数,用于设置系统服务进程的默认打开文件描述符 DefaultLimitNOFILE=65535
调整nginx参数(/etc/nginx/nging.conf)
events { worker_connections 65535 }
然后重启nginx
systemctl restart nginx
小结
本文链接:https://blog.runxinyun.com/post/328.html 转载需授权!
留言0