nginx--配置文件

news2025/2/24 6:46:38

组成

主配置文件: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;                拒绝所有人访问

 

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

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

相关文章

KUKA机器人KR3 R540维护保养——涂润滑脂

KUKA机器人在保养时少不了润滑脂&#xff0c;不同型号的机器人需要的润滑脂类型也不一样&#xff0c;保养时注意选用合适的润滑脂。本篇文章以KUKA机器人KR3 R540为例&#xff0c;在轴盖板 A2、A3、A5 的内侧涂上润滑脂。 一、涂润滑脂的作用 拆开机器人一个轴的盖板&am…

链表面试题2

1&#xff0c;合并两个有序链表 我们先定义一个虚拟节点newH&#xff0c; 然后按照上图所走&#xff0c;但是当其中一个链表走空时&#xff0c;我们只需返回另一个链表即可 class Solution {public ListNode mergeTwoLists(ListNode headA, ListNode headB) {ListNode newhead…

python基础语法--函数

一、函数概述 函数就是执行特定任务完成特定功能的一段代码。可以在程序中将某一段代码定义成函数&#xff0c;并指定一个函数名和接收的输入&#xff08;参数&#xff09;&#xff0c;这样就可以在程序的其他地方通过函数名多次调用并执行该段代码了。 每次调用执行后&#…

Mybatis-Plus学习:快速入门、核心功能、扩展功能、插件功能

文章目录 MybatisPlus快速入门快速开始常见注解常见配置 核心功能条件构造器&#xff08;Wrapper&#xff09;自定义SQLService接口基本用法基础业务接口复杂业务接口Lamda查询Lamda更新批量新增 扩展功能代码生成代码生成器快速开发插件 静态工具逻辑删除枚举处理器JSON处理器…

机器人系统ros2-开发实践04-ROS 2 启动文件管理大型项目的最佳实践

机器人上的大型应用通常涉及多个互连的节点&#xff0c;每个节点可以有许多参数。海龟模拟器中模拟多只海龟就是一个很好的例子。海龟模拟由多个海龟节点、世界配置以及 TF 广播器和监听器节点组成。在所有节点之间&#xff0c;存在大量影响这些节点的行为和外观的 ROS 参数。 …

【C++】哈希的应用---位图

目录 1、引入 2、位图的概念 3、位图的实现 ①框架的搭建 ②设置存在 ③设置不存在 ④检查存在 ​4、位图计算出现的次数 5、完整代码 1、引入 我们可以看一道面试题 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数…

罗宾斯《管理学》第15版笔记/课后习题/考研真题答案

第Ⅰ篇 管理导论 第1章 工作场所中的管理者和你 1.1 知识结构导图 1.2 考点难点归纳 1.3 课后习题详解 1.4 考研真题详解 附加模块一 管理史 知识结构导图 考点难点归纳 课后习题详解 考研真题详解 第2章 决 策 2.1 知识结构导图 2.2 考点难点归纳 2.3 课后习题详解…

C++string类使用大全

目录 温馨提示&#xff1a;这篇文章有约两万字 什么是string类&#xff1f; 一. 定义和初始化string对象 1.string的构造函数的形式&#xff1a; 2.拷贝赋值运算符 3.assign函数 二.string对象上的操作 1.读写string对象 2.读取未知数量的string对象 3.使用getline …

STM32中断系统详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 中断基本概念 2. STM32中断 3. NVIC的基本组件 3.1 NVIC的基本组件 3.2 NVIC的优先级 4. EXTI外部中断 4.1 基本概念 4.2 基本结构 5. AFIO 1. 中断基本概念 中断&#xff08;Interrupt&…

信息技术内涵及意义

一、信息技术及其演进趋势 &#xff08;一&#xff09;信息技术概况概念 信息技术&#xff08;Information Technology&#xff0c;IT&#xff09;指“应用在信息加工和处理中的科学、技术与工程的训练方法与管理技巧&#xff1b;上述方法和技巧的应用&#xff1b;计算机及其…

mac idea 下载spring 源码遇到的问题

一、Kotlin: warnings found and -Werror specified 这个问题网上看了很多文章多说是缺少cglib、objenesis包。然后执行了 实际还是没有什么用 解决&#xff1a; 最后自己看了一下前面一个警告。说的就是版本太低。所以我觉得是这个前置问题导致的 然后搜索了改这个Kotlin版本…

《ElementUI 基础知识》el-tabs header 监听鼠标中键滚动时左右滑动(ElementPlus同样适用)

前言 收到需求&#xff0c;可监听 el-tabs 头在鼠标 hover 时。滑动鼠标中键&#xff0c;可左右滑动&#xff01; 效果 鼠标中键上下滑动时&#xff1b;向上滑&#xff0c;向左移动&#xff1b;向下滑&#xff0c;向右移动&#xff1b; 实现 代码56 - 60行&#xff0c;添加…

前端开发框架Vue

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Vue概述 Vue.js&#xff08;简称Vue&#xff09;是由尤雨溪&#xff08;Evan You&#xff09;创建并维护的一款开源前端开发框架。Vue以其轻量级、易上手和高度灵活的特点&…

【Transformer系列(1)】self-attention自注意力

一、self-attention流程 自注意力机制和注意力机制的区别在于&#xff0c;注意力机制中的Q&#xff08;查询向量&#xff09;&#xff0c;K&#xff08;键向量&#xff09;&#xff0c;V&#xff08;值向量&#xff09;是同源的&#xff0c;而一般的注意力机制&#xff0c;Q和…

【MATLAB】GUI初步设计

MATLAB界面设计 前言一、基本步骤1.1 创建GUI文件1.2 界面设计 总结 前言 为了完成图像处理的作业&#xff0c;简直就是生活不易啊 找到一个很棒的教学视频 基于MATLAB的GUI界面设计流程讲解 一、基本步骤 1.1 创建GUI文件 由于在写博文之前我已经创建好文件了&#xff0c;…

Istio基础知识

一、什么是Istio Istio 提供⼀种简单的⽅式来为已部署的服务建⽴⽹络&#xff0c;该⽹络具有 负载均衡、服务间认证、监控等功能&#xff0c;只需要对服务的代码进⾏⼀点或不需要做任何改动。想要让服务⽀持 Istio&#xff0c;只需要在您的环境中部署⼀个特殊的 sidecar 代 理&…

【Linux驱动】USB协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux驱动》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; USB协议 &#x1f63c;认识USB&#x1f640;USB的电气信号低速和全速信号电平低速和全速的数据信…

2024-5-1我把QQ群聊天记录分析工具重写了一下

【下载地址】 https://www.lanzoub.com/b00rn0g47e 密码:9hww 【项目背景】 2020年我用Tkinter写过一个QQ群聊天记录分析的工具exe&#xff0c;后续也写过一个纯JS前端的版本&#xff0c;前阵子有个用户反馈不能用了&#xff0c;顺便看能不能加入一个分析关键词的功能&…

基于Python的在线学习与推荐系统设计与实现(论文+源码)-kaic

题目&#xff1a;在线学习与推荐系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本在线学习与推荐系统就是在这样的大环境下诞生&#xff0…