Nginx基础入门
一、Nginx的优势
nginx是一个高性能的HTTP和反向代理服务器,也是一个SMTP(邮局)服务器。
Nginx的web优势:IO多路复用,时分多路复用,频分多路复用
高并发,IO多路复用,epoll,异步,非阻塞
IO多路复用理论方法
1.第一种方法:最传统的多线程并发模型(没进来一个新的I/O六会分配一个新的进程管理)
2.第二种方法:I/O多路复用(耽搁县城,通过记录跟踪每个I/O六的状态,来同时管理多个I/O流),发明他的原因是尽量多个提高服务器的吞吐能力,在同一个线程里面,通过拨开关的方式,来同时传输多个I/O流
IO多路复用技术类型
select
poll
epoll:特点:异步,非阻塞
二、HTTP协议详解
三、Nginx部署Yum
1.官网链接
http://www.nginx.org
2.nginx版本类型
- Mainline version:主线版,即开发版
- Stable version:最新稳定版,生产环境上建议使用的版本
- Legacy versions:遗留的老版本的稳定版
3.配置yum源
下载压缩包

安装nginx文档



4.装环境问题
getenforce
systemctl status firewalld
yum -y install nginx
systemctl start nginx
systemctl enable nginx
nginx -V
四、Nginx配置文件
rpm -ql nginx 查看所有文件
| /etc/logrotate.d/nginx | 日志轮转 |
| /etc/nginx | |
| /etc/nginx/conf.d | 子配置文件 |
| /etc/nginx/conf.d/default.conf | 默认网站配置文件 |
| /etc/nginx/fastcgi_params | 动态网站模块文件-python,php所需的相关变量 |
| /etc/nginx/mime.types | 文件关联程序(网站文件类型和相关处理程序) |
| /etc/nginx/modules | 模块文件夹,第三方模块 |
| /etc/nginx/nginx.conf | 主配置文件 |
| /etc/nginx/scgi_params | 动态网站模块文件-python,php所需的相关变量 |
| /etc/nginx/uwsgi_params | 动态网站模块文件-python,php所需的相关变量 |
| /usr/lib/systemd/system/nginx-debug.service | ngnix调试程序启动脚本 |
| /usr/lib/systemd/system/nginx.service | 服务脚本 |
| /usr/lib64/nginx | |
| /usr/lib64/nginx/modules | |
| /usr/libexec/initscripts/legacy-actions/nginx | |
| /usr/libexec/initscripts/legacy-actions/nginx/check-reload | |
| /usr/libexec/initscripts/legacy-actions/nginx/upgrade | |
| /usr/sbin/nginx | 主程序 |
| /usr/sbin/nginx-debug | |
| /usr/share/doc/nginx-1.24.0 | |
| /usr/share/doc/nginx-1.24.0/COPYRIGHT | |
| /usr/share/man/man8/nginx.8.gz | |
| /usr/share/nginx | |
| /usr/share/nginx/html | |
| /usr/share/nginx/html/50x.html | |
| /usr/share/nginx/html/index.html | |
| /var/cache/nginx | 缓存 |
| /var/log/nginx | 日志文件 |
五、Nginx编译参数
ngnix -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
| configure arguments: | 配置参数 configure --help 查询帮助 |
| --prefix=/etc/nginx | 安装路径 |
| --sbin-path=/usr/sbin/nginx | 程序文件 |
| --modules-path=/usr/lib64/nginx/modules | 模块路径 |
| --conf-path=/etc/nginx/nginx.conf | 主配置文件 |
| --error-log-path=/var/log/nginx/error.log | 错误日志 |
| --http-log-path=/var/log/nginx/access.log | 访问日志 |
| --pid-path=/var/run/nginx.pid | 程序id |
| --lock-path=/var/run/nginx.lock | 所路径,防止重复启动nginx |
| --http-client-body-temp-path=/var/cache/nginx/client_temp | 缓存 |
| --http-proxy-temp-path=/var/cache/nginx/proxy_temp | 代理缓存 |
| --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp | php缓存 |
| --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp | python缓存 |
| --http-scgi-temp-path=/var/cache/nginx/scgi_temp | |
| --with-compat | 启动动态模块兼容 |
| --user=nginx | 用户 |
| --group=nginx | 组 |
| --with-file-aio | 使用nginx的aio特性会大大提高性能 |
| --with-threads | 多线程模块 |
| --with-http_addition_module | 响应之前或者之后追加文本内容,比如像在站点底部追加一个js广告或者新的css样式 |
| --with-http_auth_request_module | 认证模块 |
| --with-http_dav_module | 增加上传PUT,DELETE,MKCOL;创建集合,COPY,MOVE方法默认情况下为关闭 |
| --with-http_flv_module | nginx添加mp4,flv视频支持模块 |
| --with-http_gunzip_module | 压缩模块 |
| --with-http_gzip_static_module | |
| --with-http_mp4_module | 多媒体模块 |
| --with-http_random_index_module | |
| --with-http_realip_module | nginx获取真实ip模块 |
| --with-http_secure_link_module | nginx安全下载模块 |
| --with-http_slice_module | nginx中文文档 |
| --with-http_ssl_module | 安全模块 |
| --with-http_stub_status_module | 访问状态 |
| --with-http_sub_module | nginx替换网站响应内容 |
| --with-http_v2_module | |
| --with-mail | 邮件哭护短 |
| --with-mail_ssl_module | |
| --with-stream | 负载均衡 |
| --with-stream_realip_module | |
| --with-stream_ssl_module | |
| --with-stream_ssl_preread_module | |
| --with-cc-opt | cpu优化参数 |
| --param | |
| --with-ld-opt |
六、Nginx基本配置
1.观察主配置文件
1.1分类
1.CoreModule模块(进程数等)

全局/核心模块:配置影响nginx全局的指令,一般有运行nginx服务器的用户组,nginx进程pid存放位置,日志存放路径,配置文件引入,允许生成worker process数等
2.EventsModule 事件驱动模块(工作模式)

events块:配置影响nginx服务期货与用户的网络连接,有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否需同时接受多个网络连接,开启多个网络连接序列化等
nginx优化可以改变worker_process为cpu数量,和worker_connections最大连接数
3.HttpCoreModule http内核模块(文档程序类型,配置文件)

default_type application/octet-stream; 字节流处理方式
http模块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置,如文件引入,mime-type定义,日子自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
4.server块:配置虚拟主机的相关参数,一个http中可以有多个server
5.location:配置请求的路由,以及各种页面的处理情况
1.2vim /etc/nginx/nginx.conf
2.观察默认虚拟主机配置文件
vim /etc/nginx/conf.d/default.conf
server { 虚拟主机
listen 80; 监听端口
server_name localhost; 购买的域名(服务器的名字)#access_log /var/log/nginx/host.access.log main; 日志
location / { 位置
root /usr/share/nginx/html;
index index.html index.htm; 主页
}#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html { 错误页面
root /usr/share/nginx/html; 错误页面主页
}# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
3.启动一个新的虚拟主机
3.1vim /etc/nginx/conf.d/xuleilinux.conf 在nginx上启动一个独立的网站
server {
listen 80;
server_name xuleilinux.com;location / {
root /xuleilinux;
index index.html;
}}
mkdir /xuleiLinux
echo meinanzi > /xuleilinux/index.html
3.2.重启服务
systemctl restart nginx
3.3.域名解析和访问
vim /etc/hosts
192.168.64.139 xuleilinux.com
elink xuleilinux.com 出现meinanzi成功 按q退出
七、Nginx日志Log
1.日志配置
1.1日志模块
官方文档
http://nginx.org/en
日志模块的名称:ngx_http_log_module
1.2相关指令
| log_format | 日志格式 |
| access_log | |
| error_log | |
| open_log_file_cache |
1.3日志的格式和命令----log_format
1.3.1简介
Nginx又非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,日志格式通过log_format命令定义
1.3.2语法

1.3.3默认值
![]()
1.3.4环境
Context:http context
1.3.5定义设置位置
vim /etc/nginx/nginx.conf
日志部分配置


日志格式允许包含的变量
| $remote_addr | 远程地址,记录客户端ip地址 |
| $remote_user | 远程用户,记录客户端用户名称 |
| [$time_local] | 本地时间,服务器自身时间 |
| $request | 请求,记录请求的url和http协议 |
| $status | 状态,请求状态 |
| $body_bytes_sent | 发送给客户端的字节数,不包括响应头的大小 |
| $http_referer | 记录那个页面链接访问过来的(超链接) |
| $http_user_agent | 记录客户端浏览器相关信息 |
| $http_x_forwarded_for | 代理ip |
| old |
1.4访问日志和错误日志
access_log
error_log
个性化404
1.修改主配置文件
server {
listen 80;
server_name xuleilinux.com;
location / {
root /xuleilinux;
index index.html;
}error_page 404 /404.html;
location = /404.html {
root /xuleilinux;
}
}重启nginx systemctl restart nginx
2.创建错误反馈页面
vim /xuleilinux/404.html
3.访问
访问不存在的页面
![]()
4.查看404日志
1.5日志缓存
大量访问到来时,对于每一条日志记录,都将是先打开文件,在写入日志,然后关闭占用系统的io与业务无关,可以使用open_log_file_cache来设

2.日志轮转/切割
前言
Nginx安装,回默认启动日志轮转
rpm -ql nginx | grep log
/etc/logrotate.d/nginx
/var/log/nginx


3.日志分析
八、Nginx WEB模块
1.连接状态
stub_status_module
1.1.目的:展示用户和nginx链接数量信息
1.2.查询模块是否安装
nginx -V 2>&1 | grep stub_status
1.3.启动状态模块
1.3.1访问默认站点的状态模块(注意:错误验证)
http://192.168.64.139/nginx_status 未启用(404)
1.3.2配置状态模块
vim /etc/nginx/conf.d/default.conf
server{
location /nginx_status{
stub_status;
allow all;
}
} 启用改模块
1.3.3重启服务再次访问
systemctl restart nginx 观察连接数和请求数
2.随机主页
3.替换模块
4.文件读取
5.文件压缩
6.页面缓存
7.防盗链
九、Nginx访问限制
十、访问控制
相关文章:
Nginx基础入门
一、Nginx的优势 nginx是一个高性能的HTTP和反向代理服务器,也是一个SMTP(邮局)服务器。 Nginx的web优势:IO多路复用,时分多路复用,频分多路复用 高并发,IO多路复用,epoll…...
分布式和微服务
分布式和微服务是两个不同的概念。 分布式系统是说多个独立的计算机或服务器组成的系统,这些计算机通过网络进行通信和协作,共同完成一个任务或提供一个服务。 分布式系统的目标是通过协作实现高性能、高可用性和高扩展性。 微服务是一种架构风格&…...
【无标题】学习Markdown
https://shadows.brumm.af 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…...
由于 vscode 版本更新为 1.86.1引起的相关问题。
通过vscode ssh来远程连接linux服务器的代码,由于vscode 1.86.1的更新,在连接服务器时就开始报 两个错误了: Missing GLIBCXX > 3.4.25! Missing GLIBC > 2.28! lwd192.168.66.148s password: 075b6e8e3a87: runningMissing GLIBCXX &g…...
四、矩阵的分类
目录 1、相等矩阵 2、同形矩阵 3、方阵: 4、负矩阵、上三角矩阵、下三角矩阵: 5、对角矩阵:是方阵 编辑7、单位矩阵:常常用 E或I 来表示。它是一个方阵 8、零矩阵: 9、对称矩阵:方阵 1、相等矩阵 …...
Windows环境下查看磁盘层级占用空间的解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
超级实用的python代码片段汇总和详细解析(16个)
目录 1. 生成随机文本 2. 计算文本文件中的字数 3. 替换文件文件中的字串 4. 多文件名的批量替换 5. 从网站提取数据 6. 批量下载图片 7.批量删除空文件夹 8.Excel表格读写 9.合并Excel表格工作簿 10.数据库SQL查询 11. 系统进程查杀 12.图像尺寸调整和裁剪 13.图…...
npm/nodejs安装、切换源
前言 发现自己电脑上没有npm也没有node很震惊,难道我没写过代码么?不扯了,进入正题哈哈…… 安装 一般没有npm的话会报错: 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称而且报这个错,我们执行…...
【Kotlin】流程控制
1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() {var score 85if (score > 90) {println("优秀")} else if (score > 80) {println("良好")} else if (score &…...
Devc++ Easyx 实现 瓦片地图编辑数据导入游戏
导出的DLC 直接放入 exe 同文件夹下即可自动读取。 // 程序:DLC 自动读取加载框架示例 // 作者:民用级脑的研发记录 // 邮箱:1309602336qq.com // 编译环境:Devc/VC 2010/Visual Studio 2022,EasyX_20220901/Easyx_202…...
去年面试的运维开发面试题二
VPN有哪些协议,不同协议之间有何区别? 2.内部组网通常使用哪些类型的网段,两个不同网段如何通信? 3.Linux中绝对路径,相对路径的区别 4. Linux如何添加磁盘,扩容系统文件? 5. Linux如何查看进程…...
【Unity编辑器扩展】Unity编辑器主题颜色设置工具
可以用来应用和自定义你的Unity编辑器。14个主题可供选择。轻松创建自己的主题。 主题展示:...
精美的WordPress外贸独立站模板
WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题,适合时尚服装行业搭建wordpress企业官网使用。 https://www.jianzhanpress.com/?p4999 简洁wordpress独立站模板 绿色精美、简洁大气的wordpress外贸独立网站模板 https://www.jianzhanpress.com/?…...
说一下 JVM 运行时数据区 ?
目录 一、程序计数器(Program Counter Register) 二、Java 虚拟机栈(Java Virtual Machine Stacks) 三、本地方法栈(Native Method Stack) 四、Java 堆(Java Heap) 五、方法区&…...
外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——02.数据格式整理(1)
内容如下: 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…...
Python 内存管理和优化之循环引用
更多Python学习内容:ipengtao.com Python 是一种高级动态编程语言,其内存管理由解释器自动完成。在大多数情况下,Python 的内存管理是透明的,开发者不需要过多地关注。然而,在处理大型数据结构或长时间运行的应用程序时…...
「Kafka」监控、集成篇
Kafka-Eagle 监控 Kafka-Eagle 框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。 MySQL环境准备 Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。 安装步骤参考:P61 尚硅谷 kafka监控_MySQL环境准备 …...
Linux之用户和用户组用户账号系统文件
一、简介 1.用户的定义 在linux系统中用户(User)需要用用户账号来访问系统,服务和信息,系统中的每个进程(运行的程序)都是使用一个特定的用户运行。每个文件都属于一个特定的用户所有。对文件和目录的访…...
ESP8266 (5),驱动屏幕
代码 第一步设置驱动库TFT_eSPI的默认配置文件 1,设置适配的屏幕 #define ST7789_DRIVER 2,设置屏幕大小 #define TFT_WIDTH 170 #define TFT_HEIGHT 320 3,设置屏幕驱动板端口和ESP8266对应的端口 // For NodeMCU - use pin numbers in the…...
ChatGPT-01 用ChatGPT指令,自学任何领域的系统知识
1. 指令位置 Github仓库:Mr Ranedeer AI Tutor 但是需要开通chatgtp plus版本,并且打开代码解释器 2 使用 学习内容 开始学习 GPT甚至可以给你思考题,给出的答案还能进行评价 配置 通过配置表修改 深度 学习风格 沟通风格 语气风格 …...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
