通常,Nginx在安装完后,不用更改任何配置信息,我们就可以直接运行它。但是,这显然不能满足我们的生产要求。在生产中,要让Nginx能正常高效地运行我们的应用,我们通常需要对Nginx的配置文件进行一些参数上的设置,这就是所谓的Nginx调优。如下就是Nginx的一些重要配置,下面我们来详细介绍其中关键的两个:

1、worker_processes

这个属性表示当操作系统启动时,有多少个工作进程将运行Nginx。

在Nginx运行时,系统会启动两种进程,一种是Master主进程,一种是Worker工作进程。主进程负责监控端口,协调工作进程的工作状态,分配工作任务;工作进程负责执行任务处理。通常,这个参数要设置成和操作系统的CPU内核数成倍数。因为,这样才能充分利用CPU的性能。

2、woker_connections

这个属性是指单个工作进程可以允许同时建立连接(无论这个连接是Nginx外部建立的,还是Nginx内部建立的)的数量。这里需要注意的是,一个工作进程建立一个连接后,进程将打开一个文件副本。所以,这个数量还与操作系统设定的进程最大可打开的文件副本数有关。

关于这一点,很多资料介绍说在修改worker_connections时,一定要是要ulimits -n修改操作系统对进程最大文件数的限制。但是实际操作发现,这样更改只能在当次用户的当次shell会话中起作用,并不是永久的。

那如何设置“进程最大可打开文件数”,并且永久有效?

这里有两步操作!

①更改操作系统“进程最大可打开文件数”的设置

首先,获取操作系统的root权限,然后修改limits.conf主配置文件:

vim /etc/security/limits.conf

在主配置文件的最后加入下面两句:

* soft nofile 65535* hard nofile 65535

soft:表示软件级别限制的最大可打开文件数的限制;hard:表示操作系统级别限制的最大可打开文件数的限制;*:表示所有用户都生效

保存这个文件后,配置是不会马上生效的,为了保证本次shell会话中的配置马上生效,我们需要通过ulimit命令更改本次的shell会话设置(或重启Linux操作系统):

ulimit -n 65535

②更改Nginx软件“进程最大可打开文件数”的设置

以上操作,更改的只是操作系统级别的“进程最大可打开文件”的限制。对Nginx来说,还要对这个软件进行更改。打开nginx.conf主配置文件,配置worker_rlimit_nofile属性,如下:

worker_rlimit_nofile 65535;events {worker_connections 65535;}

在生产环境下,我们一定要确保Nginx工作进程的配置信息是经过了优化设置的,否则,Nginx对并发请求的处理能力会大打折扣。

golang 修改nginx配置文件_「系统架构」Nginx调优,不可错过的几点相关推荐

  1. 自定义变量 配置文件_「系统架构」Nginx调优之变量的使用(3)

    在上一篇文章「系统架构」Nginx调优之变量的使用(2)中我们介绍了自定义变量和内置变量,下面我们继续接着介绍Nginx中变量的可见性和动态内置变量. 变量的可见性 nginx中的变量虽然不全是全局变 ...

  2. jq发送动态变量_「系统架构」Nginx调优之变量的使用(3)

    在上一篇文章「系统架构」Nginx调优之变量的使用(2)中我们介绍了自定义变量和内置变量,下面我们继续接着介绍Nginx中变量的可见性和动态内置变量. 变量的可见性 nginx中的变量虽然不全是全局变 ...

  3. 冷热分离和直接使用大数据库_「系统架构」如何通过分离冷热数据提升系统性能?...

    前言 在IT圈,根据被访问频率的不同,数据通常被分为冷数据和热数据.冷数据是指离线类的或不经常访问的数据,热数据是指在线类的或需要被计算节点频繁访问的数据. 任何热数据,随着时间的推移,最终也会慢慢变 ...

  4. java中审核订单流程图_「数据架构」数据流程图:实例-订餐系统

    数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示.通过绘制数据流程图,您可以了解由参与系统流程的人员提供并交付给他们的信息.完成流程所需的信息以及需要存储和访问的信息.本文以一个订餐系统为 ...

  5. service数据保存_「数据架构」数据流程图与实例-客户服务系统

    数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示.通过创建一个数据流图,您可以告诉参与系统流程的人员所提供和交付的信息.完成流程所需的信息以及需要存储和访问的信息.数据流图在软件工程中得到 ...

  6. er图转为数据流程图_「数据架构」实体关系模型介绍

    实体-关系模型(或ER模型)描述特定知识领域中相关的事物.基本的ER模型由实体类型(对感兴趣的事物进行分类)和指定实体之间可能存在的关系(那些实体类型的实例)组成. 在软件工程中,为了执行业务流程,E ...

  7. 文件标识符无效。使用 fopen 生成有效的文件标识符。_「存储架构」块存储、文件存储和对象存储(第1节)...

    全球传输和生成的数据比以往任何时候都多.国际数据公司(IDC)的分析师预计,到2025年,全球数据层将增至163zb.这比2016年16.1 ZB的数据增长了1000%以上.数据大量增加的原因是多方面 ...

  8. 「系统架构」什么是堡垒机?为什么需要堡垒机?

    来源:https://www.toutiao.com/i6881462700229329421 什么是堡垒机 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而 ...

  9. 开源合同管理系统_「物联网架构」最适合物联网的开源数据库

    物联网产生大量的数据,包括流数据.时间序列数据.RFID数据.传感数据等.要有效地管理这些数据,就需要使用数据库.物联网数据的本质需要一种不同类型的数据库.以下是一些数据库,当与物联网一起使用时,会给 ...

最新文章

  1. 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree
  2. Python练习题(day1)
  3. python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程
  4. Tableau实战系列如何在 Google 云平台上安装 Tableau Server
  5. JWT - just what?
  6. 在计算机网络中发送电子邮件遵循的协议是,一、计算机网络刷题
  7. java frame_如何在java中建立frame
  8. python etree htm参数_使用etree.HTML的编码问题
  9. Chapter 2 向量空间
  10. 机器学习入门(三):神经网络起手式
  11. chrome charset使用_SourceMap-使用教程
  12. MiniProfiler.EF6监控调试MVC5和EF6的性能
  13. 1. Symfony 2 --- 简介
  14. mysql1423_MySQL++简介 | 学步园
  15. 虚幻4地形怎么增加层_虚幻周报20200512 | 该来的总会来的!
  16. 2020电工(初级)证考试及电工(初级)考试软件
  17. 中恒建模助手插件和绿色建筑的完美结合
  18. 制作U盘安装XP系统
  19. codevs5172 装病的聚聚 (最短路spfa的延伸应用)(对三角不等式的深入理解)--by lethalboy
  20. Win10系统如何调整分区大小?

热门文章

  1. Exceptionless 本地部署
  2. vue完全编程方式与react在书写和运用上的异同
  3. [转]常见的用户密码加密方式以及破解方法
  4. C#实现树的双亲表示法
  5. 【ArcGIS风暴】ArcGIS中制作GPS点位轨迹线及多边形
  6. Android之机端安装apk出现INSTALL_FAILED_INSUFFICIENT_STORAGE错误的解决方法
  7. Android之android studio如何把项目分享到github并提修改的代码到Github
  8. python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
  9. java exception 行号_java日志记录错误的文件_方法_行号_报错信息
  10. hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...