如何调整nginx服务器的性能
发布网友
发布时间:2022-04-22 04:23
我来回答
共1个回答
热心网友
时间:2022-06-04 09:03
展开1全部当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两、三万,这样服务器很容易被拖死。事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数量,进而提高Nginx服务器并发性能。
vi /etc/sysctl.conf
增加以下几行:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000简单说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改 为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参 数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
echo “====================== 执行以下命令使配置生效:=========================”
#更改linux内核参数后,立即生效的命令!
/sbin/sysctl -p
Nginx优化
使用FastCGI 缓存
fastcgi_cache TEST
开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间
其它说明
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结 果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还 得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到 3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存 (20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。
Nginx服务优化(隐藏版本号、修改用户和组、设置链接超时)
优化Nginx服务可以从多个角度进行,如隐藏版本号、调整用户权限和配置缓存策略。首先,隐藏Nginx版本号至关重要,以防止潜在攻击者利用版本信息进行针对性攻击。查看版本号可以通过`curl -I 172.16.10.10/`,隐藏方式有两种:一是在源码修改,移除显示版本的代码;二是通过主配置文件设置`server_tokens off...
原生ip - StormProxies
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企业网络中获取的IP地址,这种类型的IP地址通常被认为是更加真实和可靠的代理服务。使用住宅原生IP可以更好地保护您的隐私和匿名性,并且可以提供更快的代理服务速度。2. 高匿名性:StormProxies的代理服务支持高匿名性,这意味着使用其服务的用户可以更好地保护自己的隐私和匿名性。高匿名性代理服务的匿名性更高,可以更好地避免被追踪和识别的…StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...
Nginx:参数优化
开启访问和错误日志,以监控Nginx性能并及时发现问题。考虑使用SSL/TLS会话缓存和合适的密码套件,优化SSL/TLS配置。调整FastCGI相关参数,如PHP-FPM或其他FastCGI进程,以提升性能。优化配置是一个迭代过程,根据具体应用和服务器性能不断调整。监控Nginx性能指标,帮助理解每次调整的效果。
nginx 常用优化配置项教程
1. 跨域问题同源策略是http协议保护用户安全的关键,它限制了不同源间的资源交互。解决跨域问题的方法是调整nginx配置,允许特定请求跨域。2. 动静分离为了减轻后端服务器压力,通过nginx的location规则,将静态资源如HTML、CSS和图片等分离处理,减少并发负载。实现方式在nginx配置中添加location规则,如匹配.h...
您好,我的论坛linux nginx服务器 速度有些慢,请问有优化方法吗_百度知 ...
二、利用TCMalloc优化Nginx的性能 TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具“google-perftools”中的一个成员。与标准的glibc库的malloc相比,TCMalloc库在 内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低系统负载。下面简单介绍如何为Nginx添加T...
Nginx 中的 FastCGI 怎么配置优化?
1. 提升并发连接数 在 Nginx 配置中,通过调整worker_processes指令来设置工作进程数量,间接影响并发连接上限。要根据服务器资源,适当地增加这一数值,以提高网站处理能力。不过,务必注意过度设置可能导致资源浪费,影响性能。2. 利用 FastCGI 缓存 启用 FastCGI 缓存,如使用fastcgi_cache_path,能减少后端...
如何解决nginx504gatewaytime-out错误
1. 检查后端服务的性能,确保其能够及时处理请求。2. 对后端服务进行调优,包括优化数据库查询、代码优化等。三、调整Nginx服务器性能设置 1. 调整Nginx的工作进程数、连接数等参数,以适应更高的并发请求。可以通过修改`worker_processes`和`worker_connections`的值来实现。2. 重启Nginx服务器以使新的...
全链路性能测试:Nginx 负载均衡的性能分析和调优
因为这两种方案在服务缓存不共享的情况下使用,而现在大部分公司都采用redis等缓存共享机制;5)fair响应时间:借助收费的第三方插件,效果较好。配置好Nginx后,可以对Nginx发起性能测试请求,Nginx会按照策略分发到不同的服务器上。在测试过程中,可以通过prometheus+grafana监控Nginx和服务器集群的压力情况。
Nginx 实用配置技巧
5. 配置默认站点通过调整虚拟主机顺序或listen指令,指定默认站点,确保请求导向正确。6. 禁止特定访问保护服务器,通过default规则限制未备案或恶意域名访问,或进行重定向。7. 直接返回验证文件无需实际存储,通过Nginx配置轻松提供验证文件,适用于微信等程序。8. Upstream反向代理注意proxy_pass的uri细节,...
一把王者的时间带你学会Nginx
Nginx的工作原理中,master-workers机制确保高效处理和故障隔离,worker_connections和worker_processes参数对性能影响重大。构建高可用集群,如Keepalived配合Nginx,可以实现更高级的集群管理。通过学习,你已经掌握了Nginx的基础配置和应用技巧,现在是时候将其应用到实际项目中,提升服务器性能,迈向“王者”水平了...
大型网站高并发,nginx平滑升级
大型网站在进行高并发处理时,需要考虑升级nginx服务器以提升性能和稳定性。常规升级直接卸载旧版本,安装新版本,但平滑升级则在不中断服务的情况下,将nginx服务器从低版本升级至高版本。实现平滑升级的前提是nginx源码安装,因为服务器不支持yum升级,源码安装可以灵活管理多个版本,确保平稳过渡。平滑升级的...