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后⾯面如果加了斜杠则下⾯的路径配置必须加斜杠,否则403root /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后面如果加了斜杠则下面的路径配置必须加斜杠,否则403alias /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;                拒绝所有人访问

 

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

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

相关文章

NASA数据集——NASA 标准二级(L2)暗目标(DT)气溶胶产品每 6 分钟在全球范围内对陆地和海洋上空的气溶胶光学厚度(AOT)产品

VIIRS/NOAA20 Dark Target Aerosol 6-Min L2 Swath 6 km 简介 NOAA-20&#xff08;前身为联合极地卫星系统-1&#xff08;JPSS-1&#xff09;&#xff09;--可见红外成像辐射计套件&#xff08;VIIRS&#xff09;NASA 标准二级&#xff08;L2&#xff09;暗目标&#xff08;D…

NASA数据集——VIIRS每日 L3深蓝气溶胶网格产品(AERDB_D3_VIIRS_SNPP),以 1 x 1 度

VIIRS/SNPP Deep Blue Level 3 monthly aerosol data, 1 degree x1 degree grid 简介 美国国家航空航天局&#xff08;NASA&#xff09;的可见红外成像辐射计套件&#xff08;VIIRS&#xff09;标准三级&#xff08;L3&#xff09;每月深蓝气溶胶产品来自苏米国家极轨伙伴关系…

机器学习:基于Sklearn、XGBoost,使用逻辑回归、支持向量机和XGBClassifier预测股票价格

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

推开通用人工智能大门,多模态大模型是新一代人工智能技术范式

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

C——双向链表

一.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。什么意思呢&#xff1f;意思就是链表在物理结构上不一定是连续的&#xff0c;但在逻辑结构上一定是连续的。链表是由一个一个的节点连…

【15】Head First Java 学习笔记

HeadFirst Java 本人有C语言基础&#xff0c;通过阅读Java廖雪峰网站&#xff0c;简单速成了java&#xff0c;但对其中一些入门概念有所疏漏&#xff0c;阅读本书以弥补。 第一章 Java入门 第二章 面向对象 第三章 变量 第四章 方法操作实例变量 第五章 程序实战 第六章 Java…

windows 驱动开发-DMA技术(三)

在早期&#xff0c;是按照基于包或者基于流的方式来描述DMA的&#xff0c;不过这个描述可能不准确&#xff0c;故在Vista之后修改为使用数据包/使用公共缓冲区的系统DMA。 简单的解释一下基于包和基于流的说法的原因&#xff0c;数据包是指一个个基于一定大小的数据块&#xf…

IDA pro动态调试so层初级教程

一、开启服务 adb push D:\MyApp\IDA_Pro_7.7\dbgsrv\android_server64 /data/local/tmpadb shell cd /data/local/tmp chmod 777 android_server64 ./android_server64二、IDA附加进程 十万个注意&#xff1a;IDA打开的so文件路径不能有中文 手机打开要调试的app 附加成功

讯飞星火大模型赋能教育,引领教育实现数字化转型 | 最新快讯

&#xff08;原标题&#xff1a;讯飞星火大模型赋能教育&#xff0c;引领教育实现数字化转型&#xff09; 随着人工智能的发展&#xff0c;大模型正成为人们获取知识、学习知识的“超级助手”&#xff0c;是解放生产力、释放想象力的“好帮手”。随着大模型在多个领域大放异彩…

guidance - Microsoft 推出的编程范式

文章目录 一、关于 guidance安装 二、加载模型llama.cppTransformersVertex AIOpenAI 三、基本生成四、限制的生成选择&#xff08;基本&#xff09;正则表达正则表达式来限制生成正则表达式作为停止标准 上下文无关语法 五、状态控制生成1、不可变对象中的状态2、有状态的 gui…

Nodejs 第六十九章(杀毒)

杀毒 杀毒&#xff08;Antivirus&#xff09;是指一类计算机安全软件&#xff0c;旨在检测、阻止和清除计算机系统中的恶意软件&#xff0c;如病毒、蠕虫、木马、间谍软件和广告软件等。这些恶意软件可能会对计算机系统和用户数据造成损害&#xff0c;包括数据丢失、系统崩溃、…

基于ROS从零开始构建自主移动机器人:仿真和硬件

书籍&#xff1a;Build Autonomous Mobile Robot from Scratch using ROS&#xff1a;Simulation and Hardware 作者&#xff1a;Rajesh Subramanian 出版&#xff1a;Apress 书籍下载-《基于ROS从零开始构建自主移动机器人&#xff1a;仿真和硬件》您将开始理解自主机器人发…

(1)从头搞懂 Transformer模型(图解)

1、Transformer简介 GPT回答&#xff1a;&#xff08;面试被问到可以这么介绍&#xff09; Transformer是一种用于处理序列数据的深度学习模型架构&#xff0c;最初由Vaswani等人在2017年的论文《Attention is All You Need》中提出。它在处理序列到序列&#xff08;seq2seq&…

2024年Q1葡萄酒行业线上电商(京东天猫淘宝)销售排行榜

五一聚餐不可缺少饮品——葡萄酒。鲸参谋监测的线上电商平台&#xff08;某东&#xff09;Q1季度葡萄酒行业销售数据已揭晓&#xff01; 从鲸参谋的数据中&#xff0c;我们可以明显看到今年Q1季度在线上电商平台&#xff08;某东&#xff09;葡萄酒行业的销售情况呈现出积极的…

Java面试八股之int和Integer有什么区别

int和Integer有什么区别 基本类型与包装类&#xff1a; int&#xff1a;int是Java中的一个基本数据类型&#xff08;primitive type&#xff09;&#xff0c;用于表示整数。它直接存储数值&#xff0c;没有独立的对象实例&#xff0c;不涉及内存管理。 Integer&#xff1a;I…

WebGL渲染引擎优化方向 -- 加载性能优化

作者&#xff1a;caven chen 前言 WebGL 是一种强大的图形渲染技术&#xff0c;可以在浏览器中快速渲染复杂的 3D 场景。但是&#xff0c;由于 WebGL 的高性能和高质量要求&#xff0c;如果不注意性能优化&#xff0c;它可能会消耗大量的 CPU 和 GPU 资源&#xff0c;导致应用…

使用 VLC Media Player 播放 RTSP 流媒体

VLC 是一款自由、开源的跨平台多媒体播放器及框架&#xff0c;可播放大多数多媒体文件&#xff0c;以及 DVD、音频 CD、VCD 及各类流媒体协议&#xff0c;也可以播放 RTSP 流媒体。 一、简介&#xff1a; VLC Media Player 是一款功能强大且开源的跨平台多媒体播放器。 支持…

LeetCode 102.对称二叉树

题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节点数…

【免费Java系列】大家好 ,给大家出一些今天学习内容的案例点赞收藏关注,持续更新作品 !

多态 Java中的多态是指同一个方法在不同的对象上有不同的行为: 案例一 以下有四个类 : 动物类与狗、猫类 Test测试类 // 动物类 class Animal {public void sound() {System.out.println("动物发出声音");} }// 狗类 class Dog extends Animal {Overridepublic void…

Go实现树莓派按键识别

环境 在Windows要注意交叉编译设置&#xff0c; 这个库目前没有使用C, 所以不需要配置GCC、G&#xff0c; 配置如下 GOOSlinux GOARCHarm 代码 package mainimport ("fmt""github.com/stianeikeland/go-rpio/v4""os""time" )var (…