Nginx主配置文件---Nginx.conf

nginx主配置文件的模块介绍

全局块
全局块是配置文件从开始到 events 块之间的部分,其中指令的作用域是 Nginx 服务器全局。主要指令包括:

user:指定可以运行 Nginx 服务的用户和用户组,只能在全局块配置。例如:user nobody; 表示使用 nobody 用户运行 Nginx 服务。

worker_processes:指定工作线程数,可以设定具体的进程数,也可使用自动模式(如worker_processes auto; )。一般设为与 CPU 数量相同或 2 倍于 CPU 数量。
pid:指定进程 pid 文件存放的路径,例如:pid logs/nginx.pid;
error_log:指定错误日志的路径和日志级别。此指令可在全局块、http 块、server 块以及 location 块中配置。例如:error_log logs/error.log notice; 表示错误日志存放在logs/error.log,级别为 notice。

events 块
涉及的指令主要影响 Nginx 服务器与用户的网络连接,对服务器性能有较大影响,常用指令有:

accept_mutex:开启时,将对多个 Nginx 进程接收连接进行序列化,防止多个进程对连接的争抢。默认是开启状态,只能在 events 块中进行配置,例如:accept_mutex on;
multi_accept:如果被禁止(multi_accept off; ),Nginx 一个工作进程只能同时接受一个新连接;否则,一个工作进程可以同时接受所有新连接。若 Nginx 使用 kqueue 连接方法,此指令会被忽略。
use:指定使用哪种网络 I/O 模型,如use epoll; 。可选择的内容包括 select、poll、kqueue、epoll、rtsig、/dev/poll 以及 eventport 等,但一般操作系统并不支持所有模型。
worker_connections:设置允许每一个 worker 进程同时开启的最大连接数。例如:worker_connections 1024; 需注意,这个值不能超过系统支持打开的最大文件数和单个进程支持打开的最大文件数。

http 块
是 Nginx 配置中的重要部分,可包含自己的全局块、多个 server 块,而 server 块中又可进一步包含多个 location 块。http 全局块中可配置的指令包括:

include:用于包含其他的配置文件,例如:include mime.types;
default_type:设定默认文件类型,例如:default_type application/octet-stream;
sendfile:开启高效文件传输模式,例如:sendfile on;
keepalive_timeout:设置客户端连接保持活动的超时时间,例如:keepalive_timeout 65;
log_format:自定义日志格式。
access_log:配置 access_log 日志及存放路径,并可使用上面定义的日志格式。

在 server 块中,常用指令有:
listen:配置监听端口,例如:listen 80;
server_name:配置服务名,例如:server_name localhost;
location:用于匹配网页位置,可进行各种请求处理的配置,例如指定根目录、首页文件等。

在 location 块中,可以进一步细化对特定 URL 路径的处理规则。


worker_processes 1;

工作进程数,设置成服务器内核的2倍(一般不超过8个,超过8个反而会降低性能4个1-2个)

处理进程的过程必然涉及配置文件和展示页面,也就是涉及打开文件的数量

nginx默认打开文件数就是1024

vim /etc/security/limits.conf
进入编辑
soft bproc 65535
能打开的进程最大数的软限制是65535,65535是最大数
hard nproc 65535
soft nofile
进程打开文件数的最大值65535
hrad nofile 65535
能打开的进程最大数的硬限制是65535
这个配置要生效只能重启,这是系统初始化的一个环节。

面试题:

root和alias匹配工作之间的区别

root的匹配模式 拼接

root的工作目录,访问的是uri/102

location /xy102

/opt/test1

/opt/test1/xy102

alias也是指匹配nginx的根目录 路径是绝对路径

location /xy102

alias /opt/test1/xy102/;

alias 只能写在http模块当中的server模块的location模块里面

root可以写在server模块,也可以在http,也可以在location中

alias匹配工作目录,不能够使用重定向功能


总结

全局模块

work_processes 1; 指定进程数

events模块决定了能够处理的连接数

stream 四层代理模块

http模块

转发和处理http请求,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置。

在http模块当中,包含:

server模块 http里面可以有多个server模块

在server模块当中包含:

location模块

在server模块当中可以有多个location模块


实验

统计访问状态

vim nginx.conf

location /status {

stub_status on;

打开状态统计的功能;

access_log off;

关闭status的访问日志

}

然后nginx -t 查看一下语法是否有误

没有问题就重启nginx

访问页面得出结果

Active connections:1

当前活动的连接数

server accepts handled requests

已经处理的连接数

36 36 36

三个数字从左往右:已经处理的连接次数,成功建立的连接次数 ,已经处理的请求数

Reading:0 writing:1 waiting:0

reading :标识服务端正在从客户端请求读取请求的数据

writing :表示服务端正在把响应数据发送给客户端

waiting:表示有连接处于空闲状态,等待新的请求


基于密码的授权进行访问控制

yum -y install httpd-tools httppasswd的工具,要先安装

htpasswd -c /usr/local/nginx/passwd.db bmm

创建一个文件

进入nginx主配置文件里面

重启


基于客户端的访问控制 ip地址来进行控制

添加一个控制规格

deny 192.168.124.10

allow all

20的主机不能访问

其他的主机可以访问。


基于域名的nginx主机

然后把ip地址和域名做一个映射

进入 /etc/hosts编辑

访问www.xy102.com就相当于访问192.168.124.10

多个域名的访问

进入nginx主配置文件中在后面添加一个server模块


基于ip地址的访问

先创建一个虚拟网卡

然后进入nginx主配置文件中更改监听ip地址

检测语法错误然后重启


基于端口实现多个虚拟主机

端口可以任意设置,但不能超过65535


多个配置文件

进入nginx主配置文件

在http模块中添加

然后创建一个conf.d这个目录,切换到这个目录中,编辑一个test1.conf

然后创建这个两个目录

往两个目录中index.html写入内容

查看这个目录连接的端口

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

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

相关文章

怎么解决C++不支持字符串枚举?

首先,有两种方法:使用命名空间和字符串常量与使用 enum class 和辅助函数。 表格直观展示 特性使用命名空间和字符串常量使用 enum class 和辅助函数类型安全性低 - 编译器无法检查字符串有效性,运行时发现错误高 - 编译期类型检查&#xf…

基于正点原子FreeRTOS学习笔记——时间片调度实验

目录 一、时间片调度介绍 二、实验演示 1、宏修改 1.1、滴答定时器宏 1.2、调度器宏 2、实验程序 2.1.1、任务1,任务2不加临界区程序 2.1.2 实验现象 2.2.1、任务1,任务2加临界区程序 2.2.2 实验现象 一、时间片调度介绍 时间片:同…

[Cloud Networking] BGP

1. AS (Autonomous System) 由于互联网规模庞大,所以网络会被分为许多 自治系统(AS-Autonomous system)。 所属类型ASN名称IPv4 数量IPv6数量运营商ISPAS3356LEVEL3 - Level 3 Parent, LLC, US29,798,83273,301,954,048互联网企业AS15169GO…

vue+element-ui简洁完美实现个人博客“​响石潭 ​”

目录 一、项目介绍 二、项目截图 1.项目结构图 2.首页 3.生活 ​编辑 4.文章详情 ​编辑 5.关于我 ​编辑 ​编辑 三、源码实现 1.项目依赖package.json 2.项目启动 3.首页源码 四、总结 一、项目介绍 本项目在线预览:点击访问 参考官网&#xff1…

数据库操作语言(DML)

数据库操作语言(DML) 文章目录 数据库操作语言(DML)一、四种操作二、数据的插入(增)三、数据的删除(删)四、数据的修改(改)五、数据的查询(查&…

STM32 中断编程入门

目录 一、中断系统 1、中断的原理 2、中断类型 外部中断 定时器中断 DMA中断 3、中断处理函数 中断标志位清除 中断服务程序退出 二、实际应用 中断控制LED 任务要求 代码示例 中断控制串口通信 任务要求1 代码示例 任务要求2 代码示例 总结 学习目标&…

如何理解MySql的MVCC机制

MVCC是什么 MySQL的MVCC机制,全称为多版本并发控制(Multi-VersionConcurrency Control),是一种提高数据库并发性能的技术。MVCC的主要目的是在保证数据一致性的同时,提高数据库的并发性能。 它通过为每个读操作创建数…

技术赋能教育:校园3D电子地图与AR导航解决方案

随着高考的落幕,又一批新鲜血液即将注入大学校园。面对陌生的环境,如何快速适应、准确找到目标地点,成为新生们的一大难题。同时,对于学校而言,如何向报考人员直观展示校园环境,提供沉浸式参观体验&#xf…

Vue跨域获取ip和ip位置城市等归属地信息

由于端口设置与查询服务器不一致,所以不能直接从ip138网上抓取,只能跨域查询。实现跨域查询,简单的方法是使用jsonp方式,只支持get请求,同时也需要查询的服务器支持jsonp。这时找到了腾讯位置服务。参考文章&#xff0…

第 27 篇 : 搭建maven私服nexus

官网文档 1. 下载应该很慢, 最好是能翻墙 nexus-3.69.0-02-java8-unix.tar.gz 2. 上传到/usr/local/src, 解压及重命名 tar -zxvf nexus-3.69.0-02-java8-unix.tar.gz rm -rf nexus-3.69.0-02-java8-unix.tar.gz mv nexus-3.69.0-02 nexus ls3. 修改配置 cd /usr/local/sr…

2024最新版Redis常见面试题包含详细讲解

Redis适用于哪些场景? 缓存分布式锁降级限流消息队列延迟消息队 说一说缓存穿透 缓存穿透的概念 用户频繁的发起恶意请求查询缓存中和数据库中都不存在的数据,查询积累到一定量级导致数据库压力过大甚至宕机。 缓存穿透的原因 比如正常情况下用户发…

生命在于学习——Python人工智能原理(3.1.2)

一、概率基本知识 1.3 常见概型 1.3.1 古典概型 定义1 古典概型 若随机事件E满足如下两个条件: (1)样本空间S中只有有限个样本点。 (2)样本空间S中每个样本点发生都是等可能的。 这样的随机试验称为古典概型。 P(A)…

暑期大数据人工智能学习-企业项目试岗实训开营

暑期企业项目-试岗实训活动全面开启啦 跟张良均老师学大数据人工智能 不仅可以提供实习证明,有需要话也可以提供实习鉴定报告 √54个热门案例拆解 √40项目实战课程 √27个项目可选 √4个项目方向

企业本地大模型用Ollama+Open WebUI+Stable Diffusion可视化问答及画图

最近在尝试搭建公司内部用户的大模型,可视化回答,并让它能画图出来, 主要包括四块: Ollama 管理和下载各个模型的工具Open WebUI 友好的对话界面Stable Diffusion 绘图工具Docker 部署在容器里,提高效率 以上运行环境…

to_json 出现乱码的解决方案

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

基于MIMO系统的预编码matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 最小均方误差(MMSE)准则 4.2 量化准则 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 …

让围绕数据库构建大模型应用更简单方便--DB-GPT

DB-GPT的目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单,更方便。 1 处理流程 DB-GPT系…

使用supportFragmentManager管理多个fragment切换

android studio创建的项目就没有一个简单点的框架,生成的代码都是繁琐而复杂,并且不实用。 国内的页面一般都是TAB页面的比较多,老外更喜欢侧边菜单。 如果我们使用一个activity来创建程序,来用占位符管理多个fragment切换&…

网络连接之队头阻塞!!!

一、什么是队头阻塞 队头阻塞,在网络模型中简单理解就是,对于队列型的请求模型,如HTTP的请求-响应模型、TCP的ACK确认机制,都依赖得到一个具体的响应包,如果收不到这个响应包,那下一个请求就不能发&#x…

如何高效安全的开展HPC数据传输,保护数据安全?

高性能计算(HPC)在多个行业和领域中都有广泛的应用,像科学研究机构、芯片IC设计企业、金融、生物制药、能源、航天航空等。HPC(高性能计算)环境中的数据传输是一个关键环节,它涉及到将数据快速、安全地在不…