Nginx 配置文件

Nginx的配置文件的组成部分:

  • 主配置文件:nginx.conf
  • 子配置文件:include conf.d/*.conf

全局配置

nginx 有多种模块

  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能
  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等
  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
  • Stream服务模块: 实现反向代理功能,包括TCP协议代理
  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

1. 关闭版本或修改版本

查看nginx版本信息

关闭版本号

[root@localhost ~]# vim /etc/nginx/nginx.conf   //修改配置信息
  http {                            //在http语句块中进行修改
      server_tokens  off;   //关闭版本

[root@localhost ~]# nginx -s reload    //重新加载

`注意:`这是唯一一个调优是在http 语句块的,其他都在全局

2. 修改启动的进程数

worker_processes  1;  
#系统默认允许的启动工作进程数数量,和你真实的cpu数量有关

worker_processes auto;
#如果设置为auto,是你真实的cpu数量

3. cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占一个核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

CPU序号:

CPU MASK: 00000001:0号CPU

          00000010:1号CPU

          ................

                    10000000:7号CPU

worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号---第3号CPU  

#序号绑定cpu    亲缘性

worker_cpu_affinity 00000101 00001010;

#同一个work  可以绑定  两个cpu可以这么写 但是不建议,本来就是 不希望飘动,这样也是飘动

4. nginx进程的优先级

当你想将nginx的work进程的优先级调高,可以使用nice设置。

worker_priority 0;
//工作进程优先级,-20~20(19)

5. 调试work进程打开的文件的个数

nginx 默认所有子进程一共可以打开的文件数量有限,所以需要优化数值。

worker_rlimit_nofile 65536;
//所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制。
//最好与ulimit -n 或者limits.conf的值保持一致。

events块(nginx工作模式)

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等。

`events  I/O模型调优`

events {worker_connections  65536;  //设置单个工作进程的最大并发连接数use epoll;//使用epoll事件驱动,Nginx支持众多的事件驱动,比如:select、poll、epoll,只能设置在events模块中设置。accept_mutex on;//on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker,避免多个睡眠进程被唤醒的设置,默认为off,新请求会唤醒所有worker进程,此过程也称为"惊群",因此nginx刚安装完以后要进行适当的优化。建议设置为onmulti_accept on;//ON时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为off,即默认为一个工作进程只能一次接受一个新的网络连接,打开后几个同时接受多个。建议设置为on
}

http块(http设置)

http 是一个大的语句块,包含若干个小的语句块(比如server语句块)

http {include  /etc/nginx/mime.types;#include 指令用于将其他文件或目录中的配置内容包含到当前位置。......  #各server的公共配置server {    #每个server用于定义一个虚拟主机,第一个server为默认虚拟服务器...}server {     ...server_name   #虚拟主机名root     #主目录#sever 下的 root指定了主页文件的位置alias     #路径别名location [OPERATOR] URL {     #指定URL的特性...if CONDITION {...}}}
}

server块(主机设置)

一个server就是一个虚拟主机

server作用:对主机的设置,例如端口号、ip地址、域名、主站点、日志 (具体参考官方文档)

1.1 server下的root

root指定了主页文件的位置

​
server {
listen 80;
server_name  www.pc.com;
root  /data/html/;location /cxk {root  /data/cxk}
}

root 类似与追加
实际 你该访问的页面 是 /data/cxk/cxk/

1.2 server块 构建虚拟主机

基于域名

实验内容: 用一台服务器生成2个站点:手机端、pc端

实验步骤:

编辑主配置文件

[root@node1 ~]#  vim  /apps/nginx/conf/nginx.conf   //编辑主配置文件http {include       mime.types;include  /apps/nginx/conf.d/*.conf;      //添加include语句default_type  application/octet-stream;server_tokens  off;[root@node1 ~]#  nginx -s reload  //重新加载

编辑子配置文件

[root@node1 data]#  mkdir  {pc,phone}    //建立pc、phone文件夹
[root@node1 data]#  cd pc
[root@node1 pc]#  echo pc > index.html   //生成pc页面
[root@node1 pc]#  cat index.html
pc
[root@node1 pc]#  cd ..
[root@node1 data]#  cd phone/ 
[root@node1 phone]#  echo phone > index.html   //生成phone页面
[root@node1 phone]#  cat index.html
phone[root@node2 ~]#  vim /etc/hosts     //编辑主机2配置文件,添加域名
172.16.88.8  www.pc.com  www.phone.com

准备页面

​[root@node1 conf.d]#  cd /apps/nginx/conf.d   //切换到子配置文件目录下
[root@node1 conf.d]#  vim pc.conf     //编辑子配置文件pc.confserver  {
listen 80;
server_name  www.pc.com;
root  /data/pc/;
}[root@node1 conf.d]#  cp pc.conf m.conf
[root@node1 conf.d]#  vim m.conf   //编辑子配置文件m.conf
server  {
listen 80;
server_name  www.phone.com;
root  /data/phone/;
}[root@node1 conf.d]#  nginx -t   //检查文件格式
[root@node1 conf.d]#  nginx -s reload   //重新加载

验证

[root@node2 ~]#  curl www.pc.com
pc
[root@node2 ~]#  curl www.phone.com
phone

基于端口

`修改配置文件:`
[root@node1 conf.d]#  vim pc.conf   //编辑子配置文件pc.conf
server  {
listen 9527;
server_name  www.pc.com;
root  /data/pc/;
}
[root@node1 conf.d]#  vim m.conf    //编辑子配置文件m.conf
server  {
listen 80;
server_name  www.phone.com;
root  /data/phone/;
}
[root@node1 conf.d]#  nginx -t          //检查文件格式
[root@node1 conf.d]#  nginx -s reload   //重新加载

`准备页面`

`验证:`
[root@node2 ~]#  curl 172.16.88.8
phone
[root@node2 ~]#  curl 172.16.88.8:9527
pc

基于ip

`修改配置文件:`
[root@node1 conf.d]#  vim pc.conf    //编辑子配置文件pc.conf
server  {
listen 172.16.88.8:80;
server_name  www.pc.com;
root  /data/pc/;
}

[root@node1 conf.d]#  ifconfig ens33:0 172.16.88.100  //添加一个虚拟ip
[root@node1 conf.d]#  vim m.conf     //编辑子配置文件m.conf
server {
listen 172.16.88.100:80;
server_name www.phone.com;
root /data/phone;
}

[root@node1 conf.d]#  nginx -s reload   //重新加载

`准备页面`

`验证:`
[root@node2 ~]#  curl 172.16.88.8
pc
[root@node2 ~]#  curl 172.16.88.100
phone

alias 别名

alise相当于置换

​server {listen 80;server_name www.pc.com;location /cxk {root /data/cxk/;//相当于追加,访问172.16.88.8/cxk等于访问172.16.88.8/data/cxk/cxk}location /cxk {alias /data/;//相当于替换,访问172.16.88.8/cxk就是访问172.16.88.8/data/}
}

 location块(URL匹配)

在一个server中location配置段可存在多个,用于实现从url到文件系统的路径映射。

语法规则:

符号

含义

举例

=

精确匹配

location  =/cxk

^~

以什么开头

location  ^~ /cxk

~

开启正则表达式,区分大小写

location  ~ /cxk

~*

开启正则表达式,不区分大小写

location  ~* /cxk

不加符号

匹配起始于此uri的所有的uri

location   /cxk

匹配优先级从高到低: => ^~> ~/~*>不带符号

`前缀匹配:` =  ^~  不带符号 

`正则匹配:` ~  ~*          
先找出所有的前缀匹配,最后再看正则匹配

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

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

相关文章

32.哀家要长脑子了!

1.299. 猜数字游戏 - 力扣(LeetCode) 公牛还是挺好数的,奶牛。。。妈呀,一朝打回解放前 抓本质抓本质,有多少位非公牛数可以通过重新排列转换公牛数字,意思就是,当这个数不是公牛数字时&#x…

怎样打造交互式3D数据可视化?

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于Plotly.js的交互式散点图和直方图联动 应用场景介绍 本代码演示了如何使用Plotly.js库创建交互式散点图和直方图联动,允许用户通过套索选择散点图中的数据点,并实时更新直方图以显…

大促前夕即高点,综合电商平台的“稀缺”魔法正在消失?

新一期618大促早已结束良久了,但似乎其产生的余韵却仍旧未消散。 从最直观的资本市场走势来看,自这一波618大促陆续开展之后,包括京东、阿里巴巴、拼多多等港美股股价就一改此前的上行态势,持续下滑至今。 事实上,早…

Hadoop3:MapReduce中的Reduce Join和Map Join

一、概念说明 学过MySQL的都知道,join和left join 这里的join含义和MySQL的join含义一样 就是对两张表的数据,进行关联查询 Hadoop的MapReduce阶段,分为2个阶段 一个Map,一个Reduce 那么,join逻辑,就可以…

【漏洞复现】和丰多媒体信息发布系统 QH.aspx 任意文件上传漏洞

0x01 产品简介 和丰多媒体信息发布系统也称数字标牌(Digital Signage),是指通过大屏幕终端显示设备,发布商业、财经和娱乐信息的多媒体专业视听系统,常被称为除纸张媒体、电台、电视、互联网之外的“第五媒体”。该系…

第四节:如何使用注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好,我是网创有方,上一节学习了如何理解Spring的两个特性IOC和AOP,这一节来基于上节的内容进行一个简单实践。这节要实现的效果是通过IOC容器获取到Bean,并且将Bean的属性显示打印出来。 第一步:创建pojo实体类stu…

MySQL 常见存储引擎详解(一)

本篇主要介绍MySQL中常见的存储引擎。 目录 一、InnoDB引擎 简介 特性 最佳实践 创建InnoDB 存储文件 二、MyISAM存储引擎 简介 特性 创建MyISAM表 存储文件 存储格式 静态格式 动态格式 压缩格式 三、MEMORY存储引擎 简介 特点 创建MEMORY表 存储文件 内…

AI智能剪辑发展到哪种地步?来看看云微客就知道了!

不是短视频团队招不起,而是矩阵账号更有性价比。企业做短视频有反思过为什么干不过同行吗?我们来看看大佬是怎么做的。云微客AI智能剪辑系统用几百个账号做矩阵布局,系统每天自动进行批量剪视频、写文案、一键自动化发布视频,一个…

RedHat9 | 内部YUM本地源服务器搭建

服务器参数 标识公司内部YUM服务器主机名yum-server网络信息192.168.37.1/24网络属性静态地址主要操作用户root 一、基础环境信息配置 修改主机名 [rootyum-server ~]# hostnamectl hostname yum-server添加网络信息 [rootyum-server ~]# nmcli connection modify ens160 …

Web2Code :网页理解和代码生成能力的评估框架

多模态大型语言模型(MLLMs)在过去几年中取得了爆炸性的增长。利用大型语言模型(LLMs)中丰富的常识知识,MLLMs在处理和推理各种模态(如图像、视频和音频)方面表现出色,涵盖了识别、推…

数据结构:队列详解 c++信息学奥赛基础知识讲解

目录 一、队列概念 二、队列容器 三、队列操作 四、代码实操 五、队列遍历 六、案例实操 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 详细代码: 一、队列概念 队列是一种特殊的线性…

量化交易 - 策略回测

策略回测 1、什么是策略回测?2、策略回测的作用3、策略回测系统概述3.1策略回测中相关的指标介绍3.2量化交易策略的资金容量3.3 完整的策略回测系统包含哪些内容 1、什么是策略回测? 策略回测,也称之为策略回溯测试,是指利用交易…

Sectigo或RapidSSL DV通配符SSL证书哪个性价比更高?

在当前的网络安全领域,选择一款合适的SSL证书对于保护网站和用户数据至关重要。Sectigo和RapidSSL作为市场上知名的SSL证书提供商,以其高性价比和快速的服务响应而受到市场的青睐。本文将对Sectigo和RapidSSL DV通配符证书进行深入对比,帮助用…

Cosine 余弦相似度并行计算的数学原理与Python实现

背景 Cosine 我在LLM与RAG系列课程已经讲了很多次了,这里不在熬述,它在LLM分析中,尤其是在语义相似度的计算中至关重要,在dot attention机制中,也会看到他的身影。这里讲的是纯数学上的运算与python是如何运用相关库进…

昇思25天学习打卡营第6天|网络构建

网络构建 概念模型模型参数 概念 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。一个神经网络模型表示为一个Cell&…

事务的特性-原子性(Atomicity)、一致性(Consistency)、隔离性(Asolation)、持久性(Durability)

一、引言 1、数据库管理系统DBMS为保证定义的事务是一个逻辑工作单元,达到引入事务的目的,实现的事务机制要保证事务具有原子性、一致性、隔离性和持久性,事务的这四个特性也统称为事务的ACID特性 2、当事务保持了ACID特性,才能…

Jasper studio报表工具中,如何判断subDataSource()子报表数据源是否为空

目录 1.1、错误描述 1.2、解决方案 1.1、错误描述 今天在处理一个有关Jasper Studio报表模板制作的线上问题,需要根据某个报表子数据源是否为空,来决定对应的组件是否显示,找了好久的资料都没有实现,最后找到一种解决办法。就是…

【Mybatis 与 Spring】事务相关汇总

之前分享的几篇文章可以一起看,形成一个体系 【Mybatis】一级缓存与二级缓存源码分析与自定义二级缓存 【Spring】Spring事务相关源码分析 【Mybatis】Mybatis数据源与事务源码分析 Spring与Mybaitis融合 SpringManagedTransaction: org.mybatis.spri…

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数 0. 引言1. 关于m_pcolor2. 关于m_image3. 关于m_shadedrelief4. 关于m_hatch5. 结语 0. 引言 本篇介绍下m_map中区域填充函数(m_hatch)、绘制伪彩色图…

Coze搭建《测测你的本命宠物》

前言 本文讲解如何从零开始,使用扣子平台去搭建《测测你的本命宠物》 《测测你的本命宠物》:测测你的本命宠物 - 扣子 AI Bot (coze.cn) 欢迎大家去体验一下!!! 正文 接下来我们开始讲解制作这个bot的流程吧&#…