nginx基本优化

安装nginx隐藏版本号

查看百度web服务器

[root@cjq11 ~]#  curl -I http://www.baidu.com

隐藏nginx服务器版本号

[root@cjq11 ~]#  cd /usr/local/src/nginx-1.22.0/
[root@cjq11 nginx-1.22.0]#  vim src/core/nginx.h

第13、14行修改版本号和服务器名称

[root@cjq11 nginx-1.22.0]# vim src/http/ngx_http_header_filter_module.c

49行nginx改为web

[root@cjq11 nginx-1.22.0]# vim src/http/ngx_http_special_response.c

#这个文件定义了http错误码的返回,有时候我们页面程序出现错误,Nginx会代我们返回相应的错误代码,回显的时候,会带上nginx和版本号,我们把他隐藏起来.

新版本使用的是变量不修改,旧版本改为 web即可

修改nginx运行账号

编译安装nginx时若不指定--user=,--group=选项,默认是nobody用户

查看用户

[root@cjq11 ~]#  ps -aux | grep nginx

创建用户

[root@cjq11 ~]#  useradd -M -s /sbin/nologin nginx
修改配置文件(只改文件,没有用户就会报错!)
[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf
第二行
改:
#user  nobody;
为:
user nginx;

语法检测

[root@cjq11 ~]# nginx -t

重载nginx

[root@cjq11 ~]# nginx -s reload

设置Nginx运行进程个数

查看cpu个数

[root@cjq11 ~]# grep ^processor /proc/cpuinfo | wc -l

根据自己cpu个数修改下面进程数

设置nginx中进程数

进程数和cpu数相同即可(我这一个cpu,所以未作修改)

[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf
第三行
worker_processes  1;

nginx运行cpu亲和力

这个要根据你的CPU进程数配置

2核CPU,开启2个进程

[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf

  worker_processes  2;worker_cpu_affinity  01  10;

4核4线程配置

[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf

  worker_processes  4;worker_cpu_affinity 0001 001 0100 1000;

8核8线程配置

[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf

  worker_processes  8;worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

4线程的CPU跑两个进程

[root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.conf

worker_processes  2;worker_cpu_affinity 0101 1010;

第一个进程在第一个和第三个cpu上运行,第二个和第四个cpu上运行,两个进程分别在这两个组合上轮询!

worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。

Nginx最多可以打开文件数

设置nginx最大可打开文件数

 [root@cjq11 ~]# vim /usr/local/nginx/conf/nginx.confworker_rlimit_nofile 102400;  在11行添加标红内容

当一个nginx进程打开的最多文件数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。

修改系统可以打开的最大文件数

临时修改

ulimit -n设定系统最多打开的文件数

[root@cjq11 ~]# ulimit -n 102400
[root@cjq11 ~]# ulimit -n
102400

永久修改

修改linux的软硬件限制文件/etc/security/limits.conf

[root@cjq11 ~]# vim /etc/security/limits.conf
在文件尾部添加如下代码: 
* soft nofile 102400
* hard nofile 102400

重启测试

[root@cjq11 ~]# reboot
[root@cjq11 ~]# ulimit -n
102400

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HAL库配置RS485通信

在配置好串口的基础上完成RS485的配置 一、使能RS485的发送和接收模式引脚 __HAL_RCC_GPIOG_CLK_ENABLE();//高电平是发送模式,低电平是接收模式,默认是接收模式HAL_GPIO_WritePin(PG4_RS485_DIR1_Port, PG4_RS485_DIR1_Pin, GPIO_PIN_RESET);GPIO_Init…

特征工程-特征处理(三)

特征处理 连续型变量处理(二) 多特征 降维 PCA PCA是一种常见的数据分析方式,通过数据分解,将高维数据降低为低维数据,同时最大程度保持数据中保存的信息。 from sklearn.decomposition import PCA A np.array([[84…

6、Pandas处理数据类型和缺失值

文章目录 简介数据类型缺失数据解决最常见的阻碍数据处理进展的问题 本节夸克网盘数据集链接:https://pan.quark.cn/s/07400ba46613 提取码:Z9sZ 简介 在本教程中,您将学习如何查看DataFrame或Series中的数据类型。您还将学习如何查找并替换数据。 数据类型 DataFrame或…

计算机毕业设计----SSH滑雪场场地租赁管理系统

项目介绍 该项目主要包括三个角色:管理员、收银员、用户; 用户角色包含以下功能: 用户登录,修改个人信息,查看我的订单等功能。 管理员角色包含以下功能: 管理员登录,滑雪场管理,订单管理,教练管理,器材管理,会员管理,收银员管…

【手撕C语言 第二集】初识C语言

​​ 一、变量的作用域和生命周期 作用域:一个变量在哪里可以使用它,哪里就是它的作用域。 局部变量的作用域:变量所在的局部范围 全局变量的作用域:整个工程 不管整个工程里面有多少源文件,都可以使用全局变量。这样…

WiFi7: ML建立流程

原文:ML (重)建立在non-AP MLD和AP MLD之间建立链接(link(s)),其基于(重)关联请求和(重)关联响应帧的简化完成。 NOTE-在以上流程之前,non-AP MLD和AP MLD必须进行认证流程。 原文:non-AP MLD可以发起 ML (重)建立,来建立一个或多个链接。Non-AP MLD必须发送(重)关联…

sqlilabs第五十七五十八关

Less-57(GET - challenge - Union- 14 queries allowed -Variation 4) 手工注入 Less-58(GET - challenge - Double Query- 5 queries allowed -Variation 1) 手工注入 报错注入就可以(布尔注入的话次数不够)(所以我们前面需要做够足够的数据支持) 最后…

关于 ant-design-vue resetFields 失效

关于 ant-design-vue resetFields 失效 背景: 遇到这样的问题使用ant-design-vue useForm来制作表单的时候,resetFields()失效 场景: 编辑 -赋值 新增-初始值(问题点:新增的时候他就不初始化) 方案&…

IDEA 常用快捷键(持续更新)

常用操作 快捷键描述Shift F10执行Alt /提示补全Ctrl /单行注释Ctrl Shift /多行注释Alt Enter根据光标所在问题,提供快速修复选择Alt Insert代码自动生成,如生成对象的构造函数等 查看源码 Ctrl Shifti出现类似于预览的小窗口Ctrl Enter完全…

【模板规范】会议纪要模板

文章目录 1、简介2、纪要模板2.1、表格类会议纪要2.2、文档类会议纪要2.3、简易版项目纪要 3、会议纪要3.1、作用3.2、特点3.2.1、工作会议纪要3.2.2、代表会议纪要3.2.3、座谈会议纪要3.2.4、联席会议纪要3.2.5、办公会议纪要3.2.6、汇报会议纪要3.2.7、技术鉴定会议纪要 3.3、…

C++ 之LeetCode刷题记录(十一)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 向耗时0s前进。 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入…

笙默考试管理系统-MyExamTest----codemirror(72)

笙默考试管理系统-MyExamTest----codemirror(72) 目录 一、 笙默考试管理系统-MyExamTest----codemirror 二、 笙默考试管理系统-MyExamTest----codemirror 三、 笙默考试管理系统-MyExamTest----codemirror 四、 笙默考试管理系统-MyExamTest--…

JavaScript 中生成二维码,你可以使用第三方库,其中最流行和广泛使用的是 QRCode.js。以下是使用 QRCode.js 生成二维码的基本步骤:

要在 JavaScript 中生成二维码,你可以使用第三方库,其中最流行和广泛使用的是 QRCode.js。以下是使用 QRCode.js 生成二维码的详细的步骤如下: 步骤 1: 引入 QRCode.js 库 首先,将 QRCode.js 库引入到你的 HTML 文件中。你可以从…

【高危】Apache Solr 环境变量信息泄漏漏洞

漏洞描述 Apache Solr 是一款开源的搜索引擎。 在 Apache Solr 受影响版本中,由于 Solr Metrics API 默认输出所有未单独配置保护策略的环境变量。在默认无认证或具有 metrics-read 权限的情况下,攻击者可以通过向 /solr/admin/metrics 端点发送恶意请…

从数据可视化到场景渲染:山海鲸的创新与实践

作为山海鲸的开发者,我们深知可视化模型场景渲染在数据分析和决策支持中的重要作用。因此在保证山海鲸可视化软件免费编辑、分享、部署的同时也在场景渲染方面不断优化,本文将介绍山海鲸在可视化模型场景渲染方面的技术革新与实践探索。 首先&#xff0…

C#核心--思维导图

对应《C#--核心》(http://t.csdnimg.cn/cpRbZ)

BFS(广度优先搜索)_层序遍历最短路径_总结

层序遍历 LeetCode 102. Binary Tree Level Order Traversal 二叉树的层序遍历(中等) LeetCode 103. Binary Tree Zigzag Level Order Traversal 之字形层序遍历 LeetCode 199. Binary Tree Right Side View 找每一层的最右结点 LeetCode 515. Find Larg…

3d姿态 mhformer 预测代码

目录 预测并可视化代码 调整部分代码: 可视化推理: mhformer 也是先进行人体检测,输出2d关键点,再估计3d关键点, 预测并可视化代码 需要注释掉plt.switch_backend(agg) 调整部分代码: output_dir_3D …

发现了一个比GPT-4还厉害的写论文解读的agent !

已经2024年了,该出现一个写论文解读AI Agent了。 大家肯定也在经常刷论文吧。 但真正尝试过用GPT去刷论文、写论文解读的小伙伴,一定深有体验——费劲。其他agents也没有能搞定的,今天我发现了一个超级厉害的写论文解读的agent &#xff0c…

进程上下文的概念和切换简单通俗的解释

进程上下文是进程执行活动全过程的静态描述。我们把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为进程上文,把正在执行的指令和数据在寄存器与堆栈中的内容称为进程正文,把待执行的指令和数据在寄存器与堆栈中的内容称为进程下文。 实际上li…