linux + nginx 的配置优化

linux 关于TCP/IP 的优化配置  配置文件/etc/sysctl.conf    修改完文件生效的命令  /sbin/sysctl -p html

以下是总结的配置内容及说明node

net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.default.arp_announce = 2 # 直接路由DR模式下要求arp_announce参数要求配置为2 net.ipv4.conf.lo.arp_announce=2 net.ipv4.conf.all.arp_announce=2 fs.file-max = 1000000 # 打开文件句柄的数量 net.ipv4.tcp_tw_reuse = 1    # 表示开启重用 容许TIME-WAIT sockets从新用于新的TCP链接 net.ipv4.tcp_keepalive_time = 600 # 启用keepalive,tcp发送keepalive消息的频度 net.ipv4.tcp_fin_timeout = 30    # 表示套接字FIN-WAIT-2状态超时时间 net.ipv4.tcp_tw_recycle= 1 # 表示开启TCP链接中TIME-WAIT sockets的快速回收 net.ipv4.tcp_max_tw_buckets = 5000    # 系统同时保持TIME_WAIT套接字的最大数量对于nginx 设置5000-30000 net.ipv4.ip_local_port_range = 1024 61000 # 设定系统打开端口的范围,即用于向外链接的端口范围 net.ipv4.tcp_rmem = 4096 32768 262142 # tcp对内存的使用 net.ipv4.tcp_wmem = 4096 32768 262142 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 net.core.netdev_max_backlog = 8096 # 当每一个网络接口接收数据包的速率比内核处理这些包的速率快时,容许发送到队列的数据包最大数 net.ipv4.tcp_syncookies = 1 # 表示开启SYN Cookies功能 net.ipv4.tcp_max_syn_backlog = 8192 # 设置SYN队列的长度 net.ipv4.tcp_synack_retries = 1    # 决定了内核放弃链接以前发送SYN+ACK包的数量 net.ipv4.tcp_syn_retries = 1    # 内核放弃创建链接以前发送SYN包的数量
View Code

nginx 的优化配置说明linux

全局    worker_proceses 8;    cpu数量最佳与系统cpu数一直    “grep ^processor /proc/cpuinfo | wc -l”在linux 运行该命令查看系统cpu数 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 直接将nginx的worker进程绑定在固定的cpu上 nginx的进程跑在某一个CPU或CPU的某一个核上,致使nginx进程使用硬件的资源不均,绑定后可充分有效的利用有效的硬件资源 events use epoll; 使用epoll(linux2.6的高性能方式) worker_connections 1024; 每一个worker 链接的进程数 multi_accept on; 在接收到一个新请求尽量多的链接 http proxy_buffer_size 4k; 指令设置缓冲区大小,从被代理的后端服务器取得的响应内容,会先读取放置到这里. sendfile on; sendfile()能够在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符),这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效 tcp_nopush on; tcp_nopush告诉nginx在一个数据包里发送全部头文件,而不一个接一个的发送 tcp_nodelay on; 不延时发送请求,on 禁用nagle缓存算法 nagle缓存算法,有些应用程序在网络通信的时候会发送不多的字节,好比说一个字节,那么再加TCP协议自己,实际上发的要41个字节,这样的效率是很低的。这时候nagle算法就应运而生了,它将要发送的数据存放在缓存里,当积累到必定量或必定时间,再将它们发送出去。 keepalive_timeout 30;  设置nginx的超时断开 allow   47.103.36.8; (location模块) 指定ip能够访问 deny    all;(location模块) 禁用除容许ip外的全部ip的访问 
View Code

 

原文出处:https://www.cnblogs.com/Weibull/p/10955913.htmlnginx

相关文章
相关标签/搜索