nginx基本优化

news2024/11/19 10:28:55

安装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.conf
 worker_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.coloradmin.cn/o/1389761.html

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

相关文章

Springboot开发的大学生寝室考勤系统刷脸进出宿舍系统源码有论文

主要功能: 学生可以申请换寝,申请宿舍维修,健康上报,寝室长可上报寝室考勤和补签考勤( 正常签到,不在寝室,晚归),查看寝室通报,公告等。 宿管处需要学生刷脸进…

Android Studio 项目结构

manifests:用于存放安卓程序的配置文件 AndroidManifest.xml:这是Android应用程序的清单文件,包含了应用程序的基本信息和组件声明等java:Java源代码文件存放的根目录 主代码 com.example.app:应用程序的主包名&#x…

Matlab:isomorphism

语法: P isomorphism(G1,G2) %计算图G1和G2之间的图同构等价关系(如果存在)。若不存在同构,则P为空数组 P isomorphism(___,Name,Value) %使用一个或多个名称-值对组参数指定其他选项 [P,edgeperm] isomorph…

浅谈SQL优化

避免使用子查询 例: select * from t1 where id in (select id from t2 where name lolly1023);其子查询在MySQL5.5版本里,内部执行计划是:先查询外表再匹配内表,而不是先查内表t2,当外表的数据很大时,查…

VM安装群晖系统 挂载整个硬盘给群晖系统

前言 在我们日常业务需求中,经常需要把整个磁盘的空间分配给群晖使用,那么如何通过vm分配整个磁盘空间给群晖系统。 操作 需要用管理员运行VM虚拟机 然后添加硬盘 就可以有权限全部添加了。这样会清除要挂载的磁盘的全部的数据。

蓝莓产量预测(R语言版)

数据描述 字段名 描述 字段名 描述 id 蓝莓唯一标识 MinOfUpperTRange 花期内最高温带日平均气温的最低记录, Clonesize 蓝莓克隆平均大小 AverageOfUpperTRange 花期内最高温带日平均气温, Honeybee 蜜蜂密度 MaxOfLowerTRange 花期内最低温带日平均气温的最…

vscode显示120字符或者80字符提示线或者显示垂直标尺

vscode显示120字符或者80字符提示线或者显示垂直标尺 一般规定一行代码不超过80或者120个字符。取决于团队的编码规范。 不同公司不同团队有不同的规定。 当单行代码过长。产生横向滚动条。使得代码难以阅读。 打开全局设置的settings.json /C:/Users/xxx/AppData/Roaming/Cod…

Qt-UI界面无法输入名字

在UI界面“在这里输入”,直接双击填写名称,无论是中文还是英文都没有反应。解决方案: 双击“在这里输入之后”,在可编辑状态下,空格→enter键,然后在右下角属性框的title中直接填写中文或英文名&#xff0…

学习c语言,奇偶排序

如果左边是奇数右边是偶数就不管他,如果左边找到偶数右边是奇数则互相交换。

高性能小模型SLM最新优化方案和热门应用盘点,附配套模型和开源代码

当大多数人都还在卷谁的大模型参数规模大的时候,聪明人已经开始搞“小模型”了(doge)。 这里的小模型指的小型语言模型(Small Language Model,简称SLM),通常用于解决资源受限或实时性要求较高的…

「云渲染科普」3dmax vray动画渲染参数如何设置

动画渲染一直都是占用时间最多的地方,动画帧数通常 1 秒在 25 帧或者以上,电脑通常需要对每一帧的画面分批渲染,通常本地电脑由于配置上的限制,往往无法在短时间内快速的完成渲染任务。这时“云渲染”则成为了动画渲染的主要方案&…

在国外外出结账时应该怎样表述,柯桥生活英语学习

大家平时外出就餐时,尤其是那种外国餐厅,结账时都怎么表达?可能大家会脱口而出“how much”..... 如果你真的这么说,那可就“踩雷”了。因为,在歪果仁的文化中,用how引导的疑问句都或多或少涉及隐私问题&am…

「许战海矩阵战略洞察」吉香居给调味品企业带来的战略启示

引言:吉香居通过实施份额化战略和打造形象产品,在调味品行业中取得了成功。但品牌结构需要调整,需要将子品牌整合到吉香居主品牌下,共同提升品牌势能。此外,企业需保持主品牌竞争战略,以实现长期稳定的高速…

一、基础篇 vue模板语法

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应…

sqli-labs关卡25(基于get提交的过滤and和or的联合注入)

文章目录 前言一、回顾上一关知识点二、靶场第二十五关通关思路1、判断注入点2、爆字段个数3、爆显位位置4、爆数据库名5、爆数据库表名6、爆数据库列名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的…

OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换[一]

前言 在现代工业自动化领域,OPC UA(开放性生产控制和统一架构)是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用,帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…

Springboot注解@Profile的作用

目录 作用 使用场景 使用技巧 激活配置文件 生产例子 作用 Springboot这个注解说白了就是用于区分有些组件、类、方法在不同环境下是否要注入启动的一个注解,打个比方我有个swagger配置类,只要注入这个类在spring中我就可以使用Swaggger这个插件&am…

x-cmd pkg | tokei - 代码行数统计工具

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 tokei 是一个使用 Rust 编写的显示有关代码统计信息的命令行工具,可以分门别类的统计目录内的代码行数。 tokei 具有良好的跨平台性,可以在 Linux、macOS、Windows 等多种平台上安装运行。 首…

呼叫中心的排班管理

排班管理是呼叫中心现场管理的重要内容之一。安排合适的人员在合适的地点和时间做合适的事情,这不仅仅是衡量排班质量的关键,也是管理的核心。而OKCC也是基于多年对呼叫中心提供服务,理解排班的业务流程,提供充分的数据支持。 呼叫…