nginx优化总结及系统内核优化

一、nginx优化

1. 性能优化:

需求内容实现
IO多路复用use epoll;
设置工作进程数worker_processes 与CPU数量相同或auto;
工作进程静态绑核worker_cpu_affinity
设置并发worker_connections worker_rlimit_nofile
连接保持超时keepalive_timeout 服务器超时时间 [客户端超时时间];
网页压缩gzip on;
页面缓存时间expires 时间;

2. 安全优化:

需求内容实现
隐藏版本号server_tokens off; || 修改源代码
防盗链valid_referers if ($invalid_referer) {rewrite }
设置运行用户/组user 用户名 组名;
限制单个ip的访问频率limit_req_zone limit_req
限制单个ip的连接数limit_conn_zone limit_conn

二、系统内核优化

vim /etc/sysctl.conf  #内核参数配置文件

net.ipv4.tcp_syncookies = 1                  #开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击

net.ipv4.tcp_tw_reuse = 1                   # 开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接

net.ipv4.tcp_tw_recycle = 1                 # 开启TCP连接中TIME-WAIT sockets的快速回收

net.ipv4.tcp_fin_timeout = 30               # 修改系默认的 TIMEOUT 时间(MSL值)

net.ipv4.tcp_max_tw_buckets = 6000          # 系统同时保持TIME-WAIT的最大数量

net.ipv4.ip_local_port_range = 1024 65535   # 外向连接的端口范围,默认为32768 60999

net.ipv4.tcp_max_syn_backlog = 65536         #系统能接受的tcp半连接的最大队列数,TCP三次握手建立阶段接受SYN请求队列的最大长度

net.core.somaxconn = 65536                   #每一个端口最大的 Listen 监听队列的长度(排队等待接收的最大连接数)   需要配合Nginx的配置参数一起调整 listen 80 backlog=65536; 
                                             
net.ipv4.tcp_keepalive_time = 600            #发送keepalive探测包消息的频率,确认客户端是否断网

-----------------------------------------------------------------------------------------------------
vi /etc/security/limits.conf   内核限制文件
* 	soft 	noproc			65535      #打开的进程数
* 	hard 	noproc			65535
* 	soft 	nofile			65535      #打开的文件数
* 	hard 	nofile			65535
* 	soft 	memlock 		unlimited     #不做内存锁定
* 	hard 	memlock 		unlimited

三、nginx常用模块

模块名模块作用
ngx_http_core_module核心模块,提供了基本的 HTTP 功能,如请求处理、重定向、访问控制等。
ngx_http_ssl_moduleSSL/TLS 模块,用于支持 HTTPS 协议,提供了加密通信和安全认证功能。
ngx_http_proxy_module反向代理模块,用于将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。
ngx_http_rewrite_module重写模块,用于重写 URL,修改请求头和请求体等。
ngx_http_gzip_modulegzip 压缩模块,用于在服务器端对响应内容进行压缩,减少传输数据量,提高网站加载速度。
ngx_http_fastcgi_moduleFastCGI 模块,用于与 FastCGI 应用程序通信,实现动态内容的处理和生成。
ngx_http_limit_req_module请求限速模块,用于限制客户端的请求速率,防止恶意请求或者 DDoS 攻击。
ngx_http_geoip_moduleGeoIP 模块,用于根据客户端的 IP 地址获取其地理位置信息,用于内容定制和访问控制。
ngx_http_access_module访问控制模块,用于设置访问规则,允许或拒绝特定的客户端请求。
ngx_http_headers_moduleHTTP 头部处理模块,用于添加、修改或删除 HTTP 请求和响应的头部信息。
ngx_http_cache_moduleHTTP 缓存模块,用于在服务器端缓存响应内容,加速对重复请求的响应。
ngx_http_stub_status_module状态监控模块,用于实时监控 Nginx 的运行状态和性能指标。
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值