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

自启动安装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-----------

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JMeter工具介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包 修…

linux mtd分区应用操作sample之某分区擦除

什么是擦除? 把flash相关的区域数据bit置为1的过程 #include <mtd/mtd-user.h> #include <mtd/mtd-abi.h> struct erase_info_user {__u32 start; // 起点 __u32 length; //长度 块大小对齐 不然报参数失败 };struct erase_info_user64 {__u64 sta…

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

文章目录 一、wandb简介二、wandb注册与登陆&#xff08;网页&#xff09; —— 若登录&#xff0c;则支持在线功能三、wandb安装与登陆&#xff08;命令行&#xff09; —— 若不登录&#xff0c;则只保留离线功能四、函数详解4.1、wandb.init() —— 初始化一个新的 wandb 实…

Vivado的两种下载安装方式:Webpack下载与安装、本地文件安装详细步骤讲解

目录 1.前言2. Vivado Webpack下载、安装3.本地文件下载安装 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 本人自本科大二开始接触FPGA相关知识&#xff0c;现已将近六年&#xff0c;由于一直在上学&#xff0c;也不是一直在搞FPGA&#xff0c;但是也完成过一些项目…

【线性表】顺序存储和链式存储的实现

文章目录 顺序存储链式存储单向链表循环链表 线性表的定义 (1)概念定义&#xff1a;用数据元素的有限序列表示叫做线性表&#xff1b;线性表中数据元素的类型可以为简单类型&#xff0c;也可以为复杂类型。许多实际应用问题所涉的基本操作有很大相似性&#xff0c;不应为每个具…

Day02 设计首页导航条

设计首页导航条 导航条的样式&#xff0c;主要是从Material DesignThemes UI 拷贝过来修改的,项目用了这个UI组件库。就看项目需要什么&#xff0c;就去源码拷过来使用。 直接下载源码&#xff0c;编译运行就可以看到Demo 了 下载后且正常编译成功了&#xff0c;是能正常跑起来…

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图 废话不多说&#xff0c;今天给大家分享一个&#xff0c;使用python绘制小提琴图、箱形图、散点图、山脊图和柱状图等等 图中的数据是随机生成的&#xff0c;图例&#xff0c;图注以及坐标题目各种信息&a…

javascript之对象属性配置

属性标志&#xff1a; 介绍&#xff1a; 对象属性&#xff0c;除 value 外&#xff0c;还有三个特殊的特性&#xff0c;也就是所谓的“标志”&#xff1a; 属性truefalsewritable值可以被修改只可读的enumerable被在循环中列出不会被列出configurable此属性可以被删除/修改 不可…

从头开始构建GPT标记器

从头开始构建GPT标记器 对于GPT Tokenizer&#xff0c;论文《Language Models are Unsupervised Multitask Learners》中介绍了一种字节级编码作为LLM的标记化机制&#xff1a; The vocabulary is expanded to 50,257. We also increase the context size from 512 to 1024 to…

python3.8环境下安装pyqt5

1.实验目的 测试python可视化工具包pyqt5,为后期做系统前端页面做铺垫 2.实验环境 1.软件 anaconda2.5 pycharm2024.1.1 pyqt5 2.硬件 GPU 4070TI Intel I7 1400K 3. 安装步骤 (base) C:\Users\PC>conda -V conda 23.7.4(base) C:\Users\PC>conda create qttest p…

基于卷积-小波神经网络的SAR图像海冰变化检测方法(MATLAB R2018A)

海冰是冰冻圈的重要组成部分&#xff0c;海冰的变化信息对航行安全和自然资源开采等非常重要&#xff0c;许多船舶没有加固防冰设备&#xff0c;因此&#xff0c;必须避开所有的冰区。尤其当冰压很高时&#xff0c;即使破冰船也很难在冰层中前行。为了安全航行&#xff0c;获取…

ctfshow-web入门-爆破(web21-web24)

目录 1、web21 2、web22 3、web23 4、web24 1、web21 爆破什么的&#xff0c;都是基操 需要认证才能访问 随便输一个用户名和密码抓包看看&#xff1a; 多出来一个认证的头 Authorization: Basic YWRtaW46MTIzNDU2 base64 解码看看&#xff1a; 就是我们刚才输入的用于测…

JVM之【运行时数据区2——堆】

三、堆&#xff08;Heap&#xff09; 1、什么是堆 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;堆&#xff08;Heap&#xff09;是用于动态分配内存的区域。在Java程序运行时&#xff0c;所有对象和数组都是在堆中分配内存的。堆是Java内存模型的重要组成部分&…

云计算-云基础设施的配置 (Provisioning Cloud Infrastructure)

AWS CloudFormation (AWS CloudFormation) 它是一项服务&#xff0c;允许我们自动建模和配置所需的AWS资源。可以使用模板来实现这一目的。这个模板基本上是用JSON或YAML格式编写的。AWS CloudFormation会根据模板描述的内容来实施资源的配置和管理。我们可以成组配置和管理一组…

MySQL—函数—日期函数(基础)

一、引言 接下来讨论和学习关于函数的第三个方面——日期函数。 常见的MySQL当中的日期函数。 注意&#xff1a; 1、CURDATE()&#xff1a;cur&#xff1a;current 当前的&#xff0c;返回的是当前日期。 2、CURTIME()&#xff1a;当前时间。 3、NOW&#xff1a;当前的日期和…

一、实现一个简单的 Google Chrome 扩展程序

目录 &#x1f9ed; 效果展示 # 图示效果 a. 拓展程序列表图示效果&#xff1a; b. 当前选项卡页面右键效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

Unity中帧动画素材的切割设置

有几个问题&#xff0c;美术在给我们帧动画的时候&#xff0c;一般都是给一个比较大的图&#xff0c;然后进行切割成多个sprite&#xff0c;导入到animation中 一般来说&#xff0c;进行那个autoSlide&#xff0c;自动切割就可以了 这个自动切割的图片会沿着有像素的最小包围…

内网-2(代理)

一、代理概述 1、代理服务器(proxy server)&#xff1a;代理网络用户去取得网络信息&#xff0c;介于浏览器与web服务器之间的一条服务器。 注&#xff1a;为了方便&#xff0c;以下用B来代表浏览器的主机&#xff0c;S来代表服务器的主机。 2、正向代理和反向代理 正向代…

车载诊断内容汇总(培训+视频)

车载诊断内容汇总 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c…

虚拟现实环境下的远程教育和智能评估系统(二)

本周进行开发工具&#xff0c;技术框架选择与学习&#xff1b;基本了解了以下技术框架的部署应用&#xff1b; 一、Springboot&#xff1a;最常用的后端框架之一&#xff0c;通过提供默认配置和自动配置&#xff0c;消除许多手动配置和样板代码&#xff0c;从而加速基于Spring…