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刚安装完以后要进行适当的优化。建议设置为on
   multi_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.conf

server  {
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

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

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

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

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

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

相关文章

Android Studio 2023版本切换DNK版本

选择自己需要的版本下载 根目录下的配置路劲注意切换 build.gradle文件下的ndkVersion也要配好对应版本

现代信息检索笔记(二)——布尔检索

目录 信息检索概述 IR vs数据库: 结构化vs 非结构化数据 结构化数据 非结构化数据 半结构化数据 传统信息检索VS现代信息检索 布尔检索 倒排索引 一个例子 建立词项(可以是字、词、短语、一句话)-文档的关联矩阵。 关联向量 检索效果的评价 …

使用Visual Studio Code记笔记

因为学习需要,记笔记是很有必要的,平常发CSDN(都让CSDN是很棒的哈),后来使用VS Code的时候发现了很多插件,觉得做笔记还是相对不错的,主要用到的还是Markdown 主要设计的插件包括: …

第3章:数据结构

树 对稀疏矩阵的压缩方法有三种: 1、三元组顺序表 2、行逻辑连接的顺序表 3、十字链表 同义词才会占用同个位置,从而需要进行多次比较。这些关键字的第一个可以不是e的同义词,可以是排在e之前的关键字正好占了那个位置。 Dijkstra算法主要特点…

MySQL 高级SQL高级语句(二)

一.CREATE VIEW 视图 可以被当作是虚拟表或存储查询。 视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。 临时表在用户退出或同数据库的连接断开后就自动消失了,而…

javassmmysql 宣和酒店点餐系统37378-计算机毕业设计项目选题推荐(附源码)

目 录 摘要 1 绪论 1.1研究背景 1.2目的 1.3ssm框架介绍 1.3论文结构与章节安排 2 宣和酒店点餐系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章…

Pascal 函数入门示例,及其汇编语言分析

1, Pascal 函数的定义格式 pascal 函数的定义语法格式: FUNCTION 函数名(形式参数表):函数类型; VAR 函数的变量说明; BEGIN 函数体; END; 2,Pascal 函数定义调用示例 order_self.pas 代码: PROGRAM example01;va…

黑龙江等保测评科普

黑龙江的等保测评,即信息安全等级保护测评,是中国网络安全法框架下的一项重要制度,旨在提升信息系统安全水平,保护关键信息基础设施免受威胁。下面是对黑龙江等保测评流程和要求的科普: 1. 等保测评概念 定义&#xff…

Linux中定位JVM问题常用命令

查询Java进程ID #ps axu | grep java #ps elf | grep java查看机器负载及CPU信息 #top -p 1(进程ID) #top (查看所有进程)获取CPU飙升线程堆栈 1. top -c 找到CPU飙升进程ID; 2. top -Hbp 9702(替换成进程ID) 找到CPU飙升线程ID; 3. $ printf &quo…

操作系统精选题(三)(简答题、概念题)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀操作系统 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 简答题 一、对 CPU、内存、外设并…

SpringCloud和Dubbo有什么区别

SpringCloud与Dubbo的区别 两者都是现在主流的微服务框架,但却存在不少差异: 初始定位不同: SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理 生态环境…

【linux】 给命令添加别名

【linux】 给命令添加别名 文章目录 【linux】 给命令添加别名1.修改2.效果 1.修改 2.效果

【AI大模型】跌倒监控与健康:技术实践及如何改变未来

文章目录 1. **背景与意义**2. **关键技术与方法**2.1 传感器数据融合2.2 深度学习模型2.3 行为模式识别2.4 预测与预防 3. **应用场景**3.1 老年人跌倒预警3.2 康复患者监测3.3 高风险职业防护 4. **实践案例**案例1:某老年社区的跌倒预警系统案例2:康复…

R语言数据分析案例39-合肥市AQI聚类和多元线性回归

一、研究背景 随着全球工业化和城市化的迅速发展,空气污染问题日益凸显,已成为影响人类健康和环境质量的重大挑战。空气污染不仅会引发呼吸系统、心血管系统等多种疾病,还会对生态系统造成不可逆转的损害。因此,空气质量的监测和…

android studio 添加aar包

按着以前旧的导包方式栽了大跟头,后面在留老板的的博客下找到了解决办法,记录一下。 Andriod Studio 导入aar最新的方式_gradle 8 引入arr-CSDN博客 最新导包方式 1.在新建libs目录,在app/libs目录下导入aar包(其实就是拷贝过去…

ARP 原理详解 一

ARP 原理 ARP(Address Resolution Protocol)地址解析协议,是根据 IP 地址获取物理地址的一个 TCP/IP 协议。 OSI 网络七层模型中,IP 地址在 OSI 模型第三层,MAC 地址在第二层,彼此不直接通信。 在通过以…

51单片机项目-点亮第一个LED灯(涉及:进制转换表、创建项目、生成HEX文件、下载程序到单片机、二极管区分正负极)

目录 新建项目选择型号添加新文件到该项目设置字体和utf-8编码二极管如何区分正负极原理:CPU通过寄存器来控制硬件电路 用P2寄存器的值控制第一个灯亮进制转换编译查看P2寄存器的地址生成HEX文件把代码下载到单片机中下载程序到单片机 新建项目 选择型号 stc是中国…

Open3D (C++) 点云旋转至主成分空间

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 首先使用主成分分析法计算出点云的特征值与特征向量,然后根据点云的特征向量计算出点云与主成分空间之间的…

开源视频配音技术

FoleyCrafter 是一个基于文本的视频配音技术,能够生成与输入视频在语义上相关且时间上同步的高质量音频, 可以在 HF 上免费使用。

华为智能驾驶方案剖析

华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线,行业降本压力下硬件配置从超配逐步转向贴合实际需求,带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像…