Nginx配置详细解释:(1)全局配置

news2025/1/17 23:23:32

自启动安装nginx:前面博客有解释

systemctl stop firewalld

setenforce 0

[root@Node1 ~]#:mkdir /data
[root@Node1 ~]#:cd /data
[root@Node1 data]#:yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel
[root@Node1 data]#:wget http://nginx.org/download/nginx-1.18.0.tar.gz
[root@Node1 data]#:tar xf nginx-1.18.0.tar.gz
[root@Node1 data]#:cd nginx-1.18.0/
[root@Node1 nginx-1.18.0]#:./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
[root@Node1 nginx-1.18.0]#:make -j2 ; make install
[root@Node1 nginx-1.18.0]#:ln -s /apps/nginx/sbin/nginx /usr/local/sbin/  #可以直接nginx启动,不再需要绝对路径启动了。
[root@Node1 nginx-1.18.0]#:vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
[root@Node1 nginx-1.18.0]#:useradd -M -s /sbin/nologin nginx
[root@Node1 nginx-1.18.0]#:chown -R nginx.nginx /apps/nginx
[root@Node1 nginx-1.18.0]#:systemctl daemon-reload 
[root@Node1 nginx-1.18.0]#:systemctl start nginx


本机机器IP:192.168.114.10。

测试机器IP:192.168.114.20。

安装完之后,配置文件nginx.conf是核心配置文件。由于是编译安装,指定了安装的位置:/apps/nginx

nginx.conf在/apps/nginx/conf/nginx.conf

一、关闭版本或修改版本

启动nginx后,systemctl start nginx

可以使用systemctl status nginx查看是否启动:running启动!

配置文件中由指令和指令块构成的。每个指令都以;分号结束,类似于编程语言。有全局和局部。每个块都有{}开始和结束。支持嵌套

关闭版本显示。在配置文件中的http模块中添加server_tokens  off;

保存退出后,要重新加载配置文件:

nginx -s reload

在另一台机器上curl -I 192.168.114.10  (大写i)。前后区别:

自定义修改版本需要到源码包里找到一个nginx.h的C语言文件。

路径在/data/nginx-1.18.0/src/core/nginx.h中,找到

修改:

修改:vim /data/nginx-1.18.0/src/http/ngx_http_header_filter_module.c

需要重新编译参考上面,安装,重启

这时可以看到我们的修改

二、修改启动的进程数

启动的进程数,也就是work进程。默认是1个work进程(工作进程,子进程)

主进程master不工作,交给子进程工作。

如果一个cpu管理一个进程,那么会大大提高工作效率,进程数在核心配置文件中的全局配置

打开/apps/nginx/conf/nginx.conf。worker_processes  1;  默认为1,修改为3。修改后,需要重启服务,但更推荐重新加载配置文件!重启:systemctl restart nginx 重新加载:nginx -s reload

一个主进程master管理一个子进程work

修改为3后,就是一个主进程管理三个子进程

如图:修改前,修改后查看进程树

三、cpu与work进程绑定,cpu亲缘性

work进程与cpu绑定,通过lscpu来查看cpu的个数;

CPU(s):                4

4个CPU,那么就修改4个work进程,子进程

添加绑定的cpu:在全局变量中:worker_processes auto;   #auto默认就是与cpu个数相同的进程数

nginx -s reload。发现四个子进程,work进程

四、PID路径

pid是master主进程的PID号。在默认在编译安装的位置,/apps/nginx/logs/nginx.pid.

可以直接通过cat查看pid号,可以修改到/apps/nginx/run/nginx.pid中。即自定义pid号文件位置。

只有nginx当运行中才会有这个文件,否则不存在。

虽然把pid文件移动到自定义的文件夹中了,还需要在配置文件nginx.conf中指定pid文件的位置。

vim /apps/nginx/conf/nginx.conf

重新加载配置文件nginx -s reload

重启后再看pid号:

五、nginx进程的优先级

当工作进程处理来自主进程的指令时,所有的工作进程都会抢占主进程发来的指令,先到先得,那么此时会浪费资源。为了解决这一问题,设置进程优先级,解决不占用资源的问题,实现一个进程在占用状态时,其他空闲的优先级高的进程来执行主进程发送的指令。

工作进程优先级范围-20~19,越小越优先。默认优先级为0

在配置文件中添加一行全局比变量: worker_priority -20;

六、调试work进程打开的文件的个数

worker_rlimit_nofile 65536; 这是nginx打开文件的总个数,那如果有4个进程,则每个进程能打开16384个文件。在全局配置添加。

除了修改nginx核心文件外,此外还需要修改系统中打开文件的数量,通过ulimit -a 查看,默认是打开1024个文件。

需要在系统中修改pam认证文件

七、服务是否以后台方式运行

一般服务都是后台运行,前台容器中会用到,如docker容器中需要前台运行,否则会自动断开

在全局配置中添加daemon off;设置前台运行。

八、只有master进程没有work进程

在测试环境中常用,用于开发调试场景,默认为on

一个master和两个worker进程

修改为off;让master工作,取消掉worker

但需要重启nginx,重新加载配置文件不生效

再看ps aux | grep -v grep | grep nginx

---------end-----------

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

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

相关文章

【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式

目录 协议什么是协议协议是水平存活的协议的组成 接口服务服务是什么服务原语 协议与服务的区别计算机网络提供的服务的三种方式面向连接服务与无连接服务可靠服务与不可靠服务有应答服务与无应答服务 协议 什么是协议 协议,就是规则的集合。 在计算机网络中&…

反激变压器的漏感及其测量方式

绿色圈的是气隙,蓝色的弧线是那个线包,变压器的漏感,主要由磁力线向空气中散发,没有构成回路,线包自身的磁场,不参与能量传输,还有气隙等。 中间的气隙,由于此处磁力线穿过空气的导磁…

视频生成框架EasyAnimate正式开源!

近期,Sora模型的热度持续上涨,社区中涌现了一些类Sora的开源项目,这些项目均基于Diffusion Transformer结构,使用Transformer结构取代了UNet作为扩散模型的基线,旨在生成更长、更高分辨率、且效果更好的视频。EasyAnim…

Unity MiniCPM-V 让引擎拥有视觉

Unity MiniCPM-V 让引擎拥有视觉 前言项目Python环境布置Unity场景布置代码编写添加并设置脚本总结 鸣谢AI提示 前言 新发布的MiniCPM-V,忍不住玩一下,可以让之前制作的语音助手拥有一定的视觉能力(不是OpenCV不行,而是AI更加符合…

【数据分享】中国第三产业统计年鉴(1991-2022)

大家好!今天我要向大家介绍一份重要的中国第三产业统计数据资源——《中国第三产业统计年鉴》。这份年鉴涵盖了从1991年到2022年中国第三产业统计全面数据,并提供限时免费下载。(无需分享朋友圈即可获取) 数据介绍 每年的《中国…

数据结构的归并排序(c语言版)

一.归并排序的基本概念 1.基本概念 归并排序是一种高效的排序算法,它采用了分治的思想。它的基本过程如下: 将待排序的数组分割成两个子数组,直到子数组只有一个元素为止。然后将这些子数组两两归并,得到有序的子数组。不断重复第二步,直到最终得到有序的整个数组。 2.核心…

MES系统生产计划的实施流程

在工厂的生产运营中,首先需要制定生产计划,MES系统软件可以监控从原材料进入工厂到产品进入仓库的整个生产过程,记录生产过程中使用的材料,设备,产品检验数据和结果,以及生产时间,人员和其他信息…

项目-双人五子棋对战:匹配模块的实现(3)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 模块详细讲解 功能需求 匹配就类似于大家平常玩的王者荣耀这样的匹配功能, 当玩家点击匹配之后, 就会进入到一个匹配队列, 当匹配到足够数量的玩家后, 就会进入确认页. 在这里, 我们主要实现的是1 - 1匹配功能, 首先先…

PPP-B2b精密产品使用注意事项及分析

1、因为在使用PPP-B2b进行定轨的时候,发的精密轨道产品是B3频点的,需要改正的卫星质心(Com)与SP3精密星历对比。 2、PPP-B2b产品吸收了电离层误差,因此电离层提取方面与IGS电离层完全无法对其。 3、由于PPP-B2b产品精…

【微信小程序】初识小程序

项目结构 项目基本组成结构 页面基础组成结构 JSON 配置文件 App.json app.json是当前小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、底部tab等。 在 pages 中加入路径,保存后,开发者工具可以自动帮我们创建对应的页…

SAS:什么时候用kcompress呀?

问题:如何截取ECGTPT变量中的后三个字符? 下图展示了以k开头的以及非k开头的substr函数和length函数,发现在UTF-8编码下,仅以k开头的函数能够截取成功。 释疑(以下内容来自SAS Help) SAS提供的字符函数…

微软云计算[2]之微软云关系数据库SQL Azure

微软云关系数据库SQL Azure SQL Azure概述SQL Azure关键技术SQL Azure数据库SQL Azure报表服务SQL Azure数据同步 SQL Azure和SQL Server对比 SQL Azure概述 SQL Azure是微软的云中关系型数据库。 SQL Azure数据库简化了多数据库的供应和部署。 SQL Azure还为用户提供内置的高…

FPGA新起点V1开发板(九)——流水灯

文章目录 一、模块框图二、代码编写三、注意点四、总结 一、模块框图 二、代码编写 endmodule下面需要敲出一个回车代码拼接是大括号 led < {led[2:0],led[3]}注意二进制和十进制 module flow_led(input sys_clk50,input rst_n,output reg [3:0] le…

探索 Adobe Illustrator 2023 (AI 2023) for Mac/Win——创意设计的强大工具

Adobe Illustrator 2023 (AI 2023) for Mac/Win 是一款在设计领域备受推崇的专业矢量图形编辑软件软件&#xff0c;为设计师们提供了无尽的创意可能性。 它具有强大而精确的绘图功能&#xff0c;让用户能够轻松绘制出各种复杂的图形、线条和形状。无论是简洁的图标设计还是精美…

STM32作业实现(八)触摸按键TPAD

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

vscode中选择pytorch虚拟环境中库没有导入报错,但是本机命令行下载过了

这是下载成功的结果 这个时候你会发现matplotlib的库是下载过的&#xff0c;没法下载 这个的原因是你的matplotlib库是下载到本机的python上但是pytorch框架上的是没有这个库的&#xff0c;此时应该打开ananconda promopt 然后输入activate pytorch转换成pytorch环境 然后pip…

gitlabcicd-k8s部署runner

一.环境信息 存储使用nfs挂载持久化 k8s环境 helm安装 建议helm 3 二.部署gitlab-runner 1.查看gitlab版本 进入容器可通过执行&#xff1a;gitlab-rake gitlab:env:info rootgitlab-647f4bd8b4-qz2j9:/# gitlab-rake gitlab:env:info System information System: Current Us…

zimo221软件和PCtoLCD2002软件的使用

Zimo221软件和PCtoLCD2002软件的使用 在没有字库时&#xff0c;我们可能需要自建汉字库&#xff0c;这时&#xff0c;汉字取模软件就会变得很重要。 一、zimo221取模方式&#xff1a; 1、打开软件 2、点击“基本操作” 3、一定要先点击“新建图像”按钮&#xff0c;见下图…

vue3中 window绑定scroll事件滚动页面获取不到e.target.scrollTop

遇到的问题 vue3项目 onMounted(() > {window.addEventListener(scroll, (e) > {console.log(e.target.scrollTop)}) })想要监听页面中的滚动&#xff0c;然后获取滚动距离实现一些功能&#xff0c;发现event参数中获取不到e.target.scrollTop&#xff08;印象中以前使…

NSIS 安装包默认支持的参数

NSIS 安装包默认支持的参数 NSIS 制作的安装包默认支持 /NCRC、/S、/D 三个参数&#xff0c;详见下文 3.2 Installer Usage&#xff08;来自 Command Line Usage&#xff09;。 以上三个参数对应的功能分别为禁止 CRC 校验、静默安装、设置安装路径&#xff0c;这三个功能不需…