nginx--配置文件

组成

主配置文件:nginx.conf

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

协议相关的配置文件:fastcgi  uwsgi scgi等

mime.types:⽀持的mime类型,MIME(Multipurpose Internet Mail Extensions)多用途互联⽹网邮件扩展类型,MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定用程序来打开。多用于指定⼀些客户端自定义的文件名,以及⼀些媒体文件打开方式。

MIME参考⽂文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_Types

 默认配置文件

参考文档

全局配置端,对全局⽣生效,主要设置nginx的启动⽤用户/组,启动的⼯工作进程数量量,⼯工作模式,Nginx的PID路路径,⽇日志路路径等

user nginx nginx;

设置权限用户和组

worker_processes number/auto;

启动工作进程数数量
auto:特殊值 允许 将工作进程自动绑定到可用 CPU

将每个工作进程绑定到单独的 CPU:worker_cpu_affinity 0001 0010 0100 1000;(4核cpu)
特殊值 (1.9.10) 允许 将工作进程自动绑定到可用 CPU:worker_cpu_affinity auto;(建议使用)
可选的掩码参数可用于限制 CPU 可用于自动绑定:worker_cpu_affinity auto 01010101;

 

 开启测试:

watch -n1 'ps -axo pid,cmd,psr,nice | grep nginx'
while true;do curl http://192.168.33.179/index.html;sleep 0.2;done


 不开启

错误⽇日志记录配置,语法:
error_log file [debug | info | notice | warn | error |
crit | alert | emerg]
error_log logs/error.log;
error_log logs/error.log notice;
error_log /apps/nginx/logs/error.log error;

pid⽂文件保存路路径
pid /apps/nginx/logs/nginx.pid; 

worker_priority 0; 工作进程nice值,-20~19(越低优先级越高)
worker_rlimit_nofile 65536; 这个数字包括Nginx的所有连接(例如与代理理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最⼤打开⽂件数的限制.

 daemon off; 前台运行Nginx服务用于测试、docker等环境。
master_process off|on; 是否开启Nginx的master-woker工作模式,仅用于开发调试场景。


events

events设置块,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最⼤大连接数,是否开启对多工作进程下的网络连接进行序列化等。

worker_connections 1024; 

设置单个nginx⼯工作进程可以接受的最⼤大并发,作为web服务器的时候最大并发数为worker_connections * worker_processes,作为反向代理的时候为(worker_connections * worker_processes)/2

use epoll; 使用epoll事件驱动,Nginx⽀支持众多的事件驱动,比如select、poll、epoll,只能设置在events模块中设置。
accept_mutex on; 优化同一时刻只有一个请求而避免多个睡眠进程被唤醒的设置,on为防止被同时唤醒,默认为off,全部唤醒的过程也成为"惊群",因此nginx刚安装完以后要进⾏适当的优化。
multi_accept on; Nginx服务器器的每个工作进程可以同时接受多个新的网络连接,但是需要在配置文件中配置,此指令默认为关闭,即默认为一个工作进程只能⼀次接受一个新的网络连接,打开后几个同时接受多个。 

 http

http块是Nginx服务器器配置中的重要部分,缓存、代理理和⽇日志格式定义等绝大多数功能和第三方模块都可以在这设置,http块可以包含多个server块,而一个server块中又可以包含多个location块,server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时间和单个链接的请求上限等

 

include mime.types; 定义类型
default_type application/octet-stream;没有定义的文件下载
sendfile on; 作为web服务器器的时候打开sendfile加快静态⽂文件传输,指定是否使用sendfile系统调用来传输文件,sendfile通过DMA(直接内存访问)⽅方式直接访问文件数据,并通过传输协议发送,从而避免了了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很⾼高,被称之为零拷贝,硬盘>> kernel buffer (快速拷⻉贝到kernel socket buffer) >>协议栈。 
keepalive_timeout timeout header_timeout; 长连接超时时间,单位是秒header_timeout告诉浏览器

DMA(Direct Memory Access)即直接内存访问,DMA是一种不经过CPU⽽直接从内存读取数据的数据交换模式,可以将DMA认为是一种能够通过一组专用总线将内部和外部存储器器与每个具有DMA能力的外设设备连接起来的控制器,在DMA模式下,CPU只须向DMA控制器器下达指令,让DMA控制器器来处理理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了了CPU资源占有率,可以大大节省系统资源,一个处理理器器可以包含多个DMA控制器器,每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,在很多高性能处理器中集成了两种类型的DMA控制器,第一类通常称为“系统DMA控制器器”,可以实现对任何资源(外设和存储器)的访问,第二类称为内部存储器DMA控制器,专⻔用于内部存储器所处位置之间的相互存取操作,即数据交换不需要经过CPU即可在不同的内存空间进行拷贝可以节省资源copy带来的上线文切换,可以直接在内存和I/O设备之间进行,可以大幅提高CPU性能 

日志配置部分 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
#                           '$status $body_bytes_sent "$http_referer" '
#                            '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;

自定义优化参数

sendfile on; 实现文件零拷贝
tcp_nopush on; 在开启sendfile的情况下,合并请求后统⼀一发送给客户端。
tcp_nodelay off; 在开启了keepalived模式下的连接是否启用TCP_NODELAY选项,当为off时,延迟0.2s发送,默认On时,不延迟发送,立即发送用户相应报文
gzip on; 开启文件压缩

 service

设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个location模块。比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用80端口提供web服务

 listen 80; 配置server监听的端口
 server_name www.xxx.com ; 本server的名称,当访问此名称的时候nginx会调用当前serevr内部的配置进程匹配,设置server name,可以空格隔开写多个并⽀支持正则表达式,如*.magedu.com www.magedu.* www.(site\d+)\.magedu\.com$ default_serve
charset koi8-r; 设置编码格式,默认是俄语格式,可以改为utf-8
access_log logs/host.access.log main;

测试
 

mkdir /apps/nginx/conf/conf.d
vim /apps/nginx/conf/conf.d

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

mkdir -p /data/nginx/html/pc
vim /data/nginx/html/pc/index.html
<h1>欢迎</h1>

 vim /apps/nginx/conf/nginx.conf

 

 在linux访问

vim /etc/hosts
192.168.33.180 www.fxq.com

 在windows上访问
C:\Windows\System32\drivers\etc\hosts

 location

location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令,都是在location中体现的,主要是基于nginx接受到的请求字符串,对用户请求的UIL进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配置也是在location模块中配置

 root html; 相当于默认页面的目录名称,默认是相对路径,可以使用绝对路径配置。
 index index.html index.htm; 默认的页面文件名称

  测试

[root@localhost ~]# cat  /apps/nginx/conf/conf.d/pc.conf 
server {
  listen 80;
  server_name www.fxq.com;
  location /xf {  #必须要在html目录中创建一个xf目录才可以访问,否则报错#使用xf的时候uri后⾯面如果加了斜杠则下⾯的路径配置必须加斜杠,否则403
     root /data/nginx/html/pc;
     index index.html
}

}
[root@localhost ~]# cat /data/nginx/html/pc/xf/index.html
<html>
<body>
<meta charset="utf-8">
<h1>黑客攻略</h1>
</body>
</html>

 alias:定义路路径别名,会把访问的路路径重新定义到其指定的路路径

 测试
 

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {
  listen 80;
  server_name www.fxq.com;
  location /xf {  #使用alias的时候uri后面如果加了斜杠则下面的路径配置必须加斜杠,否则403
     alias /data/nginx/html/pc;当访问xf的时候,会显示xf定义的/data/nginx/html/pc⾥面的内容。
     index index.html;
}
}
[root@localhost ~]# cat /data/nginx/html/pc/index.html 
<html>
<body>
<meta charset="utf-8">
<h1>欢迎使用</h1>
</body>
</html>

 error_page

error_page 500 502 503 504 /50x.html; #错误页面的文件名称
location = /50x.html { location处理对应的不同错误码的页面定义到/50x.html,这个跟对应其server中定义的目录下。
           root html; 定义默认页面所在的目录
}

 

  location ~ /\.ht {           拒绝访问文件
        allow   127.0.0.1;允许127.0.0.1访问
        deny  all;                拒绝所有人访问

 

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

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

相关文章

渲染 函数

DOM树 什么是渲染函数 在多数情况下&#xff0c;Vue推荐使用模板template来创建HTML。 然而在一些应用场景中&#xff0c;需要使用JavaScript创建HTML。 这时可以用渲染函数&#xff0c;它比模板更方便。 render函数的主要神秘地方就是Vue的h函数。 h()函数 h()函数是一个用于…

学习Rust的第26天:Rust中的cp

在本文中复刻了 cp 实用程序的功能&#xff0c;我想默认使其递归&#xff0c;因为每次我想复制时都输入 -R 文件夹都会觉得有点重复&#xff0c;本文代码将与前文代码保持相似&#xff0c;我们只会更改程序的核心功能和一些变量名称以匹配用例 Pseudo Code 伪代码 function cop…

C#实战—代码实现收发文件智能化

在信息化的今天&#xff0c;收发电子文档几乎是每个朋友都要经历的事情。比如班级学委和班长需要收发作业&#xff0c;企业管理者需要收发工作文件。但是&#xff01;&#xff01;&#xff01; 每到要交结果时&#xff0c;往往会发现总会有一些人没有即使交上&#xff0c;50个…

基于Springboot的校园食堂订餐系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园食堂订餐系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

区域文本提示的实时文本到图像生成;通过一致性自注意力机制的视频生成工具保持视频的一致性;专门为雪佛兰汽车设计的客服聊天机器人

✨ 1: StreamMultiDiffusion StreamMultiDiffusion是首个基于区域文本提示的实时文本到图像生成框架&#xff0c;实现了高速且互动的图像生成。 StreamMultiDiffusion 旨在结合加速推理技术和基于区域的文本提示控制&#xff0c;以克服之前解决方案中存在的速度慢和用户交互性…

从零开始学AI绘画,万字Stable Diffusion终极教程(一)

【第1期】SD入门 2022年8月&#xff0c;一款叫Stable Diffusion的AI绘画软件开源发布&#xff0c;从此开启了AIGC在图像上的爆火发展时期 率先学会SD的人&#xff0c;已经挖掘出了越来越多AI绘画有趣的玩法 从开始的AI美女、线稿上色、真人漫改、头像壁纸 到后来的AI创意字、AI…

望仙谷听谿涛

望仙谿涛 近来不知为何&#xff0c;染上喝咖啡的恶习&#xff0c;称为“恶”&#xff0c;是因为要花钱&#xff0c;而且非得是那种口感好的。 网络流行“人生无解&#xff0c;来杯拿铁”。 大抵是因为咖啡再苦&#xff0c;也比不过生活吧&#xff0c;至少咖啡可以加糖&#xff…

机器学习批量服务模式优化指南

原文地址&#xff1a;optimizing-machine-learning-a-practitioners-guide-to-effective-batch-serving-patterns 2024 年 4 月 15 日 简介 在机器学习和数据分析中&#xff0c;模型服务模式的战略实施对于在生产环境中部署和操作人工智能模型起着至关重要的作用。其中&…

STM32——WWDG(窗口看门狗)

技术笔记&#xff01; 1.WWDG&#xff08;窗口看门狗&#xff09;简介 本质&#xff1a;能产生系统复位信号和提前唤醒中断的计数器。 特性&#xff1a; 递减的计数器&#xff1b; 当递减计数器值从 0x40减到0x3F时复位&#xff08;即T6位跳变到0&#xff09;&#xff1b; …

HTML_CSS学习:CSS盒子模型

一、CSS中常用的长度单位 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>CSS中常用的长度单位</title><style>html{font-size: 40px;}#d1{/*第一种长度单位&…

springboot+vue中小学文具商城购物系统网站

技术栈 前端&#xff1a;vue.jsElementUI 开发工具&#xff1a;IDEA 或者eclipse都支持 编程语言: java 框架&#xff1a; ssm/springboot 数据库: mysql 版本不限 数据库工具&#xff1a;Navicat/SQLyog都可以 详细技术&#xff1a;javaspringbootvueMYSQLMAVEN文具网站为用户…

【基于MAX98357的Minimax(百度)长文本语音合成TTS 接入教程】

【基于MAX98357的Minimax&#xff08;百度&#xff09;长文本语音合成TTS 接入教程】 1. 前言2. 先决条件2.1 硬件准备2.2 软件准备2.3 接线 3. 核心代码3.1 驱动实现3.2 代码解析 4. 播放文本5. 结论 视频地址&#xff1a; SeeedXIAO ESP32S3 Sense【基于MAX98357的Minimax&am…

8.MyBatis 操作数据库(进阶)

文章目录 1.动态SQL插入1.1使用注解方式插入数据1.2使用xml方式插入数据1.3何时用注解何时用xml&#xff1f;1.4使用SQL查询中有多个and时&#xff0c;如何自动去除多余and1.4.1方法一&#xff1a;删除and之后的代码如图所示&#xff0c;再次运行1.4.2方法二&#xff1a;加上tr…

MATLAB实现遗传算法优化同时取送货的车辆路径问题VRPSDP

同时取送货的车辆路径问题VRPSDP的数学模型如下: 模型假设 所有车辆的载重、容量等性能相同。每个客户的需求&#xff08;送货和取货量&#xff09;是已知的&#xff0c;且在服务过程中不会改变。车辆的行驶速度恒定&#xff0c;不考虑交通拥堵等实时路况变化。每个客户点只能…

【C语言】——结构体

【C语言】——结构体 一、结构体类型的声明1.1、结构体的声明1.2、结构体变量的创建和初始化1.3、结构体的特殊声明1.4、结构体的自引用1.5、结构体的重命名 二、 结构体的内存对齐2.1、对齐规则2.2、结构体对齐实践2.3、为什么存在内存对齐2.4、修改默认对齐数 三、结构体传参…

数据结构------栈的介绍和实现

目录 1.栈的一些初步认识 2.栈的实现 3.相关的函数介绍 &#xff08;1&#xff09;栈的初始化 &#xff08;2&#xff09;栈的销毁 &#xff08;3&#xff09;栈的数据插入 &#xff08;6&#xff09;判断是否为空 &#xff08;7&#xff09;栈的大小 4.栈的实现完整…

C语言例题31:在屏幕上显示一个菱形

题目要求&#xff1a;在屏幕上显示一个菱形 #include <stdio.h>void main() {int i, j;int x;printf("输入菱形行数(3以上的奇数&#xff09;&#xff1a;");scanf("%d", &x);//显示菱形上面的大三角形for (i 1; i < (x 1) / 2; i) {for (…

【R语言数据分析】相关性分析:pearson与spearman

相关性分析是探寻两个变量之间关联关系的分析方法&#xff0c;注意相关性分析仅仅针对连续型变量和有序分类变量&#xff0c;对于无需分类变量就不存在相关性分析了&#xff0c;而是通过差异分析来间接反映相关性。比如性别和身高的关系就无法做相关性分析&#xff0c;虽然我们…

RHCE shell-第一次作业

要求&#xff1a; 1、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检査- 次磁盘剩余空间。 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行&#xff0c;2、通过查看端口的方式 判断该程序是否运…

动态规划——最短编辑距离

一、问题描述 最短编辑距离(Minimum Edit Distance)&#xff0c;也被称为Levenshtein距离&#xff0c;是一种计算两个字符串间的差异程度的字符串度量(string metric)。我们可以认为Levenshtein距离就是从一个字符串修改到另一个字符串时&#xff0c;其中编辑单个字符&#xff…