day34-nginx常用模块

news2024/12/28 4:36:46

## 0. 网络面试题

网络面试题:
TCP三次握手
TCP四次挥手
DNS解析流程
OSI七层模型
抓包工具 tcpdump
RAID级别区别
开机启动流程
如何实现不同的网段之间通信(路由器)
ip route add 192.168.1.0 255.255.255.0  下一跳的地址或者接口
探测服务器开启了哪些端口(无法登录服务器)
nmap  10.0.0.200
nmap  www.linuxnc.com
查看服务器开启了哪些端口(已经登录服务器)
netstat -tnulp
ss -tnulp

启动服务
systemctl start nginx
systemctl status nginx  # 查看服务状态信息
netstat -tnulp # 查看服务端口是否启动成功

进程
查看进程 ps -auxf静态  top动态
杀死进程 kill pid号
进程放到后台持续运行 nohup xxx &  screen
01.知识点回顾
启动服务: systemctl start nginx
服务对应的端口号:
ssh    22
nginx  80
mysql  3306
redis  6379
rsync  873
02.Nginx 常用模块
模块 1.配置 index 索引列表
创建索引配置文件
[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;				# 中文乱码问题 指定字符集

	location / {
	root /code/index;
 	autoindex on;					# 开启目录索引以列表的方式显示
	autoindex_localtime on;		    # 文件以当前系统时间为准
	autoindex_exact_size off;	    # 以K M G显示文件的大小
	}
}


创建代码目录
[root@web01:conf.d]#mkdir /code/index
在代码目录中创建文件
[root@web01:conf.d]#touch /code/index/1.txt
测试语法并重启nginx
hosts解析
10.0.0.7 www.index.com

浏览器测试访问

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

模块 2.限速模块
[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;

	location / {
	root /code/index;
 	autoindex on;
	autoindex_localtime on;
	autoindex_exact_size off;
	limit_rate_after 100m;			# 前100M不限速
	limit_rate       50k;		    # 100M后限速每秒传输50KB
	}
}

模块 3.Nginx 状态模块
[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;

	location / {
	root /code/index;
 	autoindex on;
	autoindex_localtime on;
	autoindex_exact_size off;
	limit_rate_after 100m;
	limit_rate       50k;
	}

	location /nginx_status {# 浏览器访问www.index.omc/nginx/status
	stub_status;	# nginx状态模块
	}
}
[root@web01:conf.d]#nginx -t

[root@web01:conf.d]#systemctl restart nginx

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Active connections  # 当前活动的连接数
accepts             # 已接收T的总TCP连接数量
handled             # 已处理的TCP连接数量
requests            # 当前http请求数

Reading             # 当前读取请求头数量
Writing             # 当前响应的请求头数量
Waiting             # 等待的请求数,开启了keepalive

# 注意, 一次TCP的连接,可以发起多次http的请求, 如下参数可配置进行验证
keepalive_timeout  0;   # 类似于关闭长连接
keepalive_timeout  65;  # 65s没有活动则断开连接

HTTP请求头部:
accept: text/html	#  请求类型
accept-encoding: gzip, deflate  # 请求编码 gzip压缩
accept-language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.	# 请求语言类型
cache-control:  no-cache	# 请求缓存
connection:  keep-alive	    # 长连接  1.0 1.1 2.0  默认使用1.1
cookie:
wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_4d3dfc2d7997ebbb6f8c4f291b7d3e51=admin%7C1723165561%7CG2Fa5IDQbAEziFeVRE7U2UdILPENaglORCrNzMVWVEq%7Ca08cbc5fb7fb239120a04080b54d308d77358b29fb0e647cb7d410d2b4aaec71; wp-settings-time-1=1723084874		# 会话保持使用 浏览器将cookie用户名密码 请求服务端
host: www.wp.com				   # 请求主机 域名
pragma: no-cache				   # 缓存
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0   # 客户端浏览器的信息

HTTP响应头部:
connection: keep-alive	   # 响应长连接
content-type: text/html; charset=UTF-8  # 响应文件类型
date: Mon, 12 Aug 2024 02:37:50 GMT     # 响应时间
location: http://www.wp.com/		    # 响应主机
server: nginx/1.26.1					# 响应服务的版本号
PHP/7.2.34							    # 响应的PHP版本

模块 4.访问限制模块
[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;

	location / {
	root /code/index;
 	autoindex on;
	autoindex_localtime on;
	autoindex_exact_size off;
	limit_rate_after 100m;
	limit_rate       50k;
	}

	location /nginx_status {
  # 使用场景 公司业务后台 管理页面
	stub_status;
	allow 10.0.0.1;
  # 先设置允许访问此页面的IP地址 10.0.0.1   只允许班长进来
	deny all;
  # 拒绝所有其他IP访问此页面				  其他所有同学拒绝进入
	}
}
[root@web01:conf.d]#nginx -t

[root@web01:conf.d]#systemctl restart nginx

测试
1.使用10.0.0.5 curl
先做hosts解析
[root@lb01:~]#cat /etc/hosts
127.0.0.1
::1
10.0.0.7 www.index.com

[root@lb01:~]#curl www.index.com/nginx_status
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.26.1</center>
</body>
</html>

2.浏览器访问测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二种使用场景

[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;

	location / {
	root /code/index;
 	autoindex on;
	autoindex_localtime on;
	autoindex_exact_size off;
	limit_rate_after 100m;
	limit_rate       50k;
	}

	location /nginx_status {
	stub_status;
	deny 10.0.0.1;	# 拒绝攻击服务器的IP地址访问此页面
	allow all;			# 允许其他所有的IP地址通过
	}
}

模块 5.登录模块 auth_basic
[root@web01:conf.d]#cat aotu.conf
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;

	location / {
	root /code/index;
 	autoindex on;
	autoindex_localtime on;
	autoindex_exact_size off;
	limit_rate_after 100m;
	limit_rate       50k;
	auth_basic           "Linux94";
  # 指定描述信息 必须存在
  auth_basic_user_file conf/passwd;
  # 用户名和密码位置 /etc/nginx/conf/passwd
	}

	location /nginx_status {
	stub_status;
	deny 10.0.0.1;
	allow all;
	}
}
创建目录
[root@web01:conf.d]#mkdir ../conf
[root@web01:conf.d]#pwd
/etc/nginx/conf.d

生成密码信息:
[root@web01:~]#htpasswd -b -c /etc/nginx/conf/passwd oldboy oldboy
Adding password for user oldboy
[root@web01:~]#cat /etc/nginx/conf/passwd
oldboy:$apr1$Dt1AbFao$07I8LAN5FDl/D0BjQ89tV.

语法测试重启服务
[root@web01:~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01:~]#systemctl restart nginx

浏览器访问www.index.com 登录测试
03.错误代码重定向
...
server {
	listen 80;
	server_name www.index.com;
	charset utf-8,gbk;
	limit_conn conn_zone 1;
	#limit_req zone=req_zone burst=3 nodelay;
	limit_req zone=req_zone burst=3;
	limit_req_status 478;
	error_page 404 478 /error.html;
  # 如果用户访问的页面出现404或者478 都会定向到error.html

	location / {
	root /code/index;			# 代码目录
 	autoindex on;
	autoindex_localtime on;

 ...

error.html的位置
[root@web01:conf.d]#ll /code/index/error.html
-rw-r--r-- 1 root root 51 Aug 12 14:56 /code/index/error.html
[root@web01:conf.d]#cat /code/index/error.html
<img style='width:100%;height:100%;' src=/478.png>

图片的位置
[root@web01:conf.d]#ll /code/index/478.png
-rw-r--r-- 1 root root 294968 Aug 12 14:57 /code/index/478.png
04.location 匹配规则
[root@web01:conf.d]#cat test.conf
server {
    listen 80;
    server_name test.oldboy.com;
    default_type text/html;
    location = / {
    return 200 "configuration A";
    }
    location  / {
    return 200 "configuration B";
    }

    location /documents/ {
    return 200 "configuration C";
    }

    location ^~ /images/ {
    return 200 "configuration D";
    }

    location ~* \.(gif|jpg|jpeg)$ {
    return 200 "configuration E";
    }
}
[root@web01:conf.d]#nginx -t

[root@web01:conf.d]#systemctl restart nginx

LB01测试
[root@lb01:~]#cat /etc/hosts
127.0.0.1
::1
10.0.0.7 www.index.com test.oldboy.com


1.测试精确匹配
[root@lb01:~]#curl test.oldboy.com
configuration A
2.测试访问test.oldboy.com/index.html
[root@lb01:~]#curl test.oldboy.com/index.html
configuration B

3.测试访问
[root@lb01:~]#curl test.oldboy.com/documents/document.html
configuration C

4.测试访问
[root@lb01:~]#curl test.oldboy.com/images/1.gif
configuration D

5.测试访问
[root@lb01:~]#curl test.oldboy.com/documents/1.jpg
configuration E



测试结果: 面试题
=       # 优先级最高 精确匹配
^~      # 正则表达式
~       # 区分大小写
~*      # 不区分大小写
/images # 路径匹配
/       # 默认匹配

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

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

相关文章

嵌入式开发如何看芯片数据手册

不管什么芯片手册&#xff0c;它再怎么写得天花乱坠&#xff0c;本质也只是芯片的使用说明书而已。而说明书一个最显著的特点就是必须尽可能地使用通俗易懂的语句&#xff0c;向使用者交代清楚该产品的特点、功能以及使用方法。 以TMP423为例&#xff0c;这是一个测量温度的芯…

【密码学】密钥管理:①基本概念和密钥生成

密钥管理是处理密钥从产生到最终销毁的整个过程的有关问题&#xff0c;包括系统的初始化及密钥的产生、存储、备份与恢复、装入、分配、保护、更新、控制、丢失、撤销和销毁等内容。 一、密钥管理技术诞生的背景 随着计算机网络的普及和发展&#xff0c;数据传输和存储的安全问…

蓝牙音视频远程控制协议(AVRCP) command跟response介绍

零.声明 本专栏文章我们会以连载的方式持续更新&#xff0c;本专栏计划更新内容如下&#xff1a; 第一篇:蓝牙综合介绍 &#xff0c;主要介绍蓝牙的一些概念&#xff0c;产生背景&#xff0c;发展轨迹&#xff0c;市面蓝牙介绍&#xff0c;以及蓝牙开发板介绍。 第二篇:Trans…

智慧运维:数据中心可视化管理平台

图扑智慧运维数据中心可视化管理平台&#xff0c;实时监控与数据分析&#xff0c;优化资源分配&#xff0c;提升运维效率&#xff0c;确保数据中心的安全稳定运行。

Linux进程间通信——匿名管道

文章目录 进程间通信管道匿名管道匿名管道使用 进程间通信 进程设计的特点之一就是独立性&#xff0c;要避免其他东西影响自身的数据 但有时候我们需要共享数据或者传递信息&#xff0c;传统的父子进程也只能父进程传递给子进程信息 因此进程间通信还是很必要的&#xff0c;…

Apollo9.0 PNC源码学习之Planning模块—— Lattice规划(三):静态障碍物与动态障碍物ST图构建

参考文章: (1)Apollo6.0代码Lattice算法详解——Part4:计算障碍物ST/SL图 (2)自动驾驶规划理论与实践Lattice算法详解 1 计算障碍物ST/SL图 计算障碍物ST/SL图主要函数关系图: // 通过预测得到障碍物list auto ptr_prediction_querier = std::make_shared<Predict…

2024新型数字政府综合解决方案(五)

新型数字政府综合解决方案通过集成人工智能、大数据、区块链和云计算技术&#xff0c;打造了一个智能化、透明化和高效的政务服务平台&#xff0c;旨在提升政府服务的响应速度、处理效率和数据安全性。该方案实现了跨部门的数据共享与实时更新&#xff0c;通过智能化的流程自动…

Waterfox vG6.0.8 官方版下载和安装步骤(一款响应速度非常快的浏览器)

前言 Waterfox 水狐浏览器&#xff0c;从字面上我们可以轻松的了解该款浏览器的一些特点。Waterfox是通过Mozilla官方认证的纯64位版火狐浏览器&#xff0c;而Waterfox 10采用Firefox 10官方源码编译而成&#xff0c;改进了大内存和64位计算的细节&#xff0c;在64位Windows系…

用Python读取Excel数据在PPT中的创建图表

可视化数据已成为提高演示文稿专业度的关键因素之一。使用Python从Excel读取数据并在PowerPoint幻灯片中创建图表不仅能够极大地简化图表创建过程&#xff0c;还能确保数据的准确性和图表的即时性。通过Python这一桥梁&#xff0c;我们可以轻松实现数据自动化处理和图表生成&am…

MyBatis全解

目录 一&#xff0c; MyBatis 概述 1.1-介绍 MyBatis 的历史和发展 1.2-MyBatis 的特点和优势 1.3-MyBatis 与 JDBC 的对比 1.4-MyBatis 与其他 ORM 框架的对比 二&#xff0c; 快速入门 2.1-环境搭建 2.2-第一个 MyBatis 应用程序 2.3-配置文件详解 (mybatis-config.…

软件需求设计分析报告(Word原件)

第1章 序言 第2章 引言 2.1 项目概述 2.1.1 项目背景 2.1.2 项目目标 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 3.1.1 接口要求 3.1.2 系统专有技术 3.1.3 查询功能 3.1.4 数据安全 3.1.5 可靠性要求 3.1.6 稳定性要求 3.1.7 安全性…

练习:python条件语句、循环语句和函数的综合运用

需求描述&#xff1a; 期望输出效果&#xff1a; 练习成果&#xff1a; #简单的银行业务流程 many 50000 def main_menu():print("----------主菜单----------"f"\n{name}您好&#xff0c;欢迎来到ATM&#xff0c;请选择操作&#xff1a;""\n查询余…

鼠标手势软件,效率办公必备!移动鼠标即可执行命令

鼠标手势软件是一种通过在屏幕上绘制特定手势来触发预设操作或命令的工具&#xff0c;它能够极大地提高用户的操作效率&#xff0c;特别是在进行重复性工作时尤为明显。这类软件通常支持多种手势操作&#xff0c;如拖拽、双击、滚动等&#xff0c;并允许用户自定义手势以适应个…

【Linux】系列入门摘抄笔记-8-权限管理chmod/chown

Linux操作系统中文件的基本权限由9个字符组成&#xff0c;分别为属主、属组和其他用户&#xff0c;用于规定是否对文件有读、写和执行权限。 文件/目录的权限与归属 目录列表中&#xff0c;有9列 第一列&#xff1a;文件类型与权限&#xff08;共10个字符&#xff0c;分为四组…

RAG完整构建流程-从入门到放弃

RAG完整构建流程 LLM模型缺陷&#xff1a; ​ 知识是有局限性的(缺少垂直领域/非公开知识/数据安全) ​ 知识实时性(训练周期长、成本高) ​ 幻觉问题(模型生成的问题) ​ 方法&#xff1a;Retrieval-Augmented Generation&#xff08;RAG&#xff09; ​ 检索&#xff1…

网络安全实训第三天(文件上传、SQL注入漏洞)

1 文件上传漏洞 准备一句话文件wjr.php.png&#xff0c;进入到更换头像的界面&#xff0c;使用BP拦截选择文件的请求 拦截到请求后将wjr.php.png修改为wjr.php&#xff0c;进行转发 由上图可以查看到上传目录为网站目录下的upload/avator,查看是否上传成功 使用时间戳在线工具…

有哪些好用的桌面管理

Fences&#xff08;适用于Windows&#xff09;&#xff1a; Fences 是一个非常流行的 Windows 桌面组织工具&#xff0c;它允许用户将图标、文件、文件夹等拖放到名为“Fences”的区域中&#xff0c;从而保持桌面的整洁有序。Fences 还支持自动隐藏空白的 Fences&#xff0c;以…

PC端实现语音识别功能

场景需求&#xff1a; 点击录音按钮&#xff1a; 如没有检测到录音设备&#xff0c;提示&#xff1a;“无法找到麦克风设备&#xff0c;请检查设备连接”。如录音设备连接正常&#xff1a;录音按钮变成录制状态&#xff0c;开始录制声音&#xff0c;同时输入框禁止键盘输入。 再…

修改esxi root用户密码

登录vcenter&#xff0c;鼠标右键点击主机&#xff0c;选择主机配置文件------提取主机配置文件 然后对提取的文件输入一个名称清晰容易分辨的名称&#xff0c;如xxx主机修改密码配置文件。 选择顶部的菜单&#xff0c;选择“策略和配置文件” 选择左侧的主机配置文件&#xf…

Oracle导入dmp文件

文章目录 写在前面一、详细知识点1、dmp文件2、导出dmp文件2.1、exp和expdp区别2.2、exp导出操作2.3、expdp导出操作2.4、PL/SQL使用客户端导出2.4.1 特殊说明2.4.2 操作指引 3、导入dmp文件3.1、imp和impdp区别3.2、imp导入操作3.3、impdp导入操作3.4、PL/SQL使用客户端导入 二…