码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • nginx常用优化


    文章目录

    • 一、系统配置
      • `修改/etc/sysctl.conf`
      • Linux修改文件句柄数|
    • 二、nginx配置
      • `全局配置`
      • `http配置`
      • `server配置`
    • 三、参考文章

    一、系统配置

    修改/etc/sysctl.conf

    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
    
    • 1
    • 2
    • 3

    sysctl -p #立即生效

    Linux修改文件句柄数|

    二、nginx配置

    全局配置

    worker_processes  auto;
    worker_cpu_affinity auto;
    worker_rlimit_nofile 65535;
    events {
    	use epoll;
        worker_connections  10240;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    配置项值解释
    worker_processesauto有多少个CPU就开启多少个worker进程
    worker_cpu_affinityauto将工作进程自动绑定到可用 CPU。默认情况下可能多个进程跑在一个CPU上,导致Nginx进程使用硬件资源不均匀,该配置尽可能地分配不同的Nginx进程给不同的CPU处理
    worker_rlimit_nofile65535配置worker进程最大打开文件数,一般等于ulimit -n的值。且需大于等于worker_connections的值
    use epollLinux使用epoll的I/O多路复用模型,windows使用的icop
    worker_connections10240配置每个worker进程能够接受的最大并发连接数。需要设置linux系统的文件句柄数,Linux修改文件句柄数

    http配置

    http {
    	server_tokens off; 					
    	sendfile        on;
    	tcp_nopush on;  				
    	keepalive_timeout  60;
    	gzip on;
    	gzip_disable "msie6";
    	gzip_proxied any;  				    
    	gzip_min_length 1k;  				
    	gzip_comp_level 5;  				
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;							    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    配置项值解释
    server_tokensoff隐藏版本号
    server_tokenson显著减少对CPU的占用
    tcp_nopushon[默认off]是TCP_CORK的一部分具体实现,优化了传输的bits效率,选项仅在使用sendfile的时候才开启
    keepalive_timeout60指定keep-alive连接持续多久,单位是秒。设置低些可以让ngnix持续工作的时间更长
    gzipon启用gzip压缩
    gzip_disablemsie6IE6对Gzip不怎么友好,不给它Gzip了
    gzip_proxiedanynginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩
    gzip_min_length1k不压缩临界值,大于1K的才压缩,一般不用改
    gzip_comp_level5压缩级别,1-10,数字越大压缩的越好,时间也越长
    gzip_typestext/css进行压缩的文件类型,缺啥补啥就行了

    server配置

    server {
    	listen       8080;
        server_name  localhost;
    
    	location /abc/ {
            proxy_read_timeout 240s;
            proxy_pass http://192.168.1.2:8088;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    配置项值解释
    proxy_read_timeout240snginx从upstream读取数据包的超时时间,默认60s

    三、参考文章

    Nginx服务器高性能优化的配置——轻松实现10万并发访问量

  • 相关阅读:
    换硬币C语言(超详细分析!包会)
    leetcode 42, 58, 14(*)
    Centos7常用服务脚本(.service)
    JavaWeb对于JSP基础语法实战详解
    java基于springboot+vue的旅游博客旅游经验分享系统
    AD脚本使用记录-暂不更新
    【无标题】
    Mysql密码忘记后怎么重置密码,mysql8之后有改动
    关于使用命令行 cf login 登录 SAP BTP CloudFoundry 环境的问题
    基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/anqixiang/article/details/125467011
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号