当前位置: 首页 > news >正文

Nginx配置详细解释:(4)高级配置

目录

1.网页的状态页

2.Nginx第三方模块(echo)

3.变量

4.自定义访问日志

5.Nginx压缩功能

6.https功能

7.自定义图标


Nginx除了一些基本配置外,还有一些高级配置,如网页的状态,第三方模块需要另外安装,支持变量,自定义访问日志,Nginx压缩功能,https功能,自定义图标等。

1.网页的状态页

状态页模块为ngx_http_stub_status_module,通过.configire --help | grep ngx_http_stub_status_module查看是否编译安装,如果没有,就--add-module=编译添加该模块。

写入location模块:

location /nginx_status {

        stub_status;

}

使用浏览器访问192.168.114.10/nginx_status

Active connections处于活动状态的客户端连接数

active connections:1

三个数字分别对应上面的accepts,handled,requests三个值,accepts统计总值,自启动后已经接受的客户端请求的总数。handled统计总值,自启动后已经处理完成的客户端请求总数,一般等于accepts。requests统计总值,自启动后客户端发来的总的请求数。

Reading读取客户端请求报文首部的连接的连接数。Writing当前状态,正在向客户端发送响应报文过程中的连接数。Waiting当前状态,正在等待客户端发出请求的空闲连接数。

2.Nginx第三方模块(echo)

当在location中直接使用echo "hello /";

重新加载会提示有问题。

也就是nginx不支持echo打印输出,需要第三方模块提供,下载第三方模块。

[root@Node1 nginx-1.18.0]#:yum install git -y  #安装git

[root@Node1 nginx-1.18.0]#:git clone https://github.com/openresty/echo-nginx-module.git

[root@Node1 nginx-1.18.0]#:./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module=/data/nginx-1.18.0/echo-nginx-module

[root@Node1 nginx-1.18.0]#:make && make install

重启服务,systemctl stop nginx ; systemctl start nginx

此时再次重新加载nginx -s reload,在测试机上尝试curl 192.168.114.10

3.变量

3.1常用内置变量

$remote_addr;#客户端的IP地址

$args;变量中存放了URL中的参数。记录数据库中的数据。形成一条语句,对接数据库 select * from table where id=125663;

$document_root;#保存了针对当前资源的请求的系统根目录,例如:/apps/nginx/html。nginx软件的根目录,在系统中真正的位置。在location中root /opt; echo $document_root; 打印出/opt; 页面主站点

$document_uri;客户端打在浏览器中的url

$remote_port;远端端口,客户端端口。

$document_root;#保存了针对当前资源的请求的系统根目录

$document_uri; #保存了当前请求中不包含参数的URI

$http_cookie;#客户端的cookie信息

$request_filename;#当前请求的资源文件的磁盘路径

$scheme;#协议

$request_method;输出GET

$request_uri;除了主机名前的后面都打印出

重新加载配置文件:nginx -s reload

在测试机上测试:

-b加上cookie

3.2 自定义变量

与普通变量一样,通过set设置变量,set $变量 值。

set $my_port $server_port;将服务端端口作为值,赋给my_port变量名。

4.自定义访问日志

4.1 日志格式

在主配置文件nginx.conf中,http模块中就有日志格式的配置

日志默认在编译安装指定的路径下:/apps/nginx/logs/access.log中。查看日志格式:

我们自己设置日志格式:

在/apps/nginx/logs/下。vim nginx.conf

4.1自定义json格式日志

5.Nginx压缩功能

压缩功能依赖于ngx_http_gzip_module模块:查看是否安装该模块:

如果文件过小,小于1k,就没必要压缩,否则压缩后有可能变大

在文件中写入location模块:

压缩级别有1-9,数字越大,压缩越高,但更消耗CPU。在root指定的路径下:创建一个5M左右的文件,

dd if=/dev/zero of=index.html count=1 bs=5M  创建一个5M的空文件,

在第一个行写入nginx 5M

vim index.html 添加第一行nginx 5M。此时大概5.1M

浏览器访问,指定路径。

6.https功能

https是http+ssl,一种加密算法,使http更为安全

如果没有ssl,访问时是http不安全,没有证书的

[root@Node1 certs]#:pwd
/etc/pki/tls/certs
[root@Node1 certs]#:vim Makefile

大概在57行,复制yy 粘贴p,去掉-aes128

使用make www.pc.com.crt签名证书

下面问你国家,省,市,公司,部门,主机名,邮箱。可随便填写,邮箱可不写

然后就会出现两个文件,一个是*.crt证书,一个是*.key私钥。

复制到/opt/下去,cp www* /opt/

ssl on | off;  指定虚拟主机配置是否启用ssl功能,此功能在1.15.0废弃,使用listen [ssl]替代。listen 443 ssl;

ssl_certificate指向包含虚拟机和CA的两个证书信息文件,一般是crt文件

ssl_certificate_key当前虚拟主机使用的私钥我那件,一般是key文件。

这时候,浏览器输入:https://192.168.114.10

点击高级,继续访问。这是我们自己做的一个http+ssl,没有经过第三方认证,证书依旧无效。

7.自定义图标

自定义图标就是网页标头的小图标。

默认是没有的,当在浏览器上访问时,是这样的:没有任何图标。

通过下载wget www.baidu.com/favicon.ico百度的图标。当客户端使用浏览器访问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件。但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错。

那么我们可以将图标保存到指定的主目录下,也就是将图标放在主目录下。

[root@Node1 data]#:wget www.baidu.com/favicon.ico

location中写入:

此时再访问,但要清除浏览器缓存

 再次访问:发现有个百度的图标了

--------end---------

相关文章:

Nginx配置详细解释:(4)高级配置

目录 1.网页的状态页 2.Nginx第三方模块(echo) 3.变量 4.自定义访问日志 5.Nginx压缩功能 6.https功能 7.自定义图标 Nginx除了一些基本配置外,还有一些高级配置,如网页的状态,第三方模块需要另外安装,支持变量&#xff0c…...

OceanBase 4.3 特性解析:列存技术

在涉及大规模数据的复杂分析或即时查询时,列式存储是支撑业务负载的关键技术之一。相较于传统的行式存储,列式存储采用了不同的数据文件组织方式,它将表中的数据以列为单位进行物理排列。这种存储模式允许在分析过程中,查询计算仅…...

ARM32开发--PWM与通用定时器

知不足而奋进望远山而前行 目录 文章目录 前言 学习目标 学习内容 PWM pwm原理 需求 开发流程 初始化PWM PWM占空比控制 main函数修改duty 输出通道 关心的内容 重要的关键词 周期 分频 占空比 总结 前言 在微控制器开发中,理解和掌握PWM&#x…...

debugger(七):栈帧(backtrace)

〇、前言 在前面已经详细得介绍了栈帧,这里实现 backtrace。 一、backtrace 思路是遍历 stack,搜索 stack pointer,逐个打印栈帧信息,一直打印到 main 函数。 void Debugger::print_backtrace() {auto output_frame [frame_n…...

kafka-重试和死信主题(SpringBoot整合Kafka)

文章目录 1、重试和死信主题2、死信队列3、代码演示3.1、appication.yml3.2、引入spring-kafka依赖3.3、创建SpringBoot启动类3.4、创建生产者发送消息3.5、创建消费者消费消息 1、重试和死信主题 kafka默认支持重试和死信主题 重试主题:当消费者消费消息异常时&…...

electron-Vue: Module parse failed: Unexpected character ‘ ‘

​ electron-Vue项目中,我自己写了一个node的C扩展(xx.node),然后在.vue文件里import它,然后运行npm run electron:serve,报错如下: ​​ electron-Vue打包默认使用webpack,默认情况下webpack没…...

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式,找到所有可能的走步方式,并记录递归深度(也就是走步次数&#x…...

C++经典150题

经典150题 数组/字符串 文章目录 经典150题数组/字符串88. 合并两个有序数组27.移除元素26.删除有序数组中的重复项80.删除有序数组重点重复项II169.多数元素189.轮转数组121.买卖股票的最佳时机123.买卖股票的最佳时机 III55.跳跃游戏45.跳跃游戏II 88. 合并两个有序数组 给…...

超详解——Python 序列详解——基础篇

目录 1. 序列的概念 字符串(String) 列表(List) 元组(Tuple) 2. 标准类型操作符 连接操作符() 重复操作符(*) 索引操作符([]) …...

DVWA-DC-6

靶机IP:192.168.20.140 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫描靶机端口及版本信息 dirsearch扫目录 发现是个wordpress建站 我们去访问前端界面 存在重定向,修改hosts文件,加入192.168…...

ubuntu早期版本以及18.04后的版本,通过rc.local配置开机自启

在ubuntu早期版本以及18.04后的版本&#xff0c;还是支持在rc.local中进行操作开机自启。 1、编辑rc.local文件 cat <<EOF >/etc/rc.local #!/bin/sh -e # rc.local # This script is executed at the end of each multiuser runlevel. # Make sure that the script…...

【环境搭建】1.阿里云ECS服务器 安装jdk8

在阿里云服务器上安装 JDK 8 可以通过以下步骤完成。假设你使用的是 CentOS 或者其他基于 Red Hat 的发行版或Alibaba Cloud Linux 3.2104 LTS 64位。 1.更新系统软件包 sudo yum update -y2.安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.8…...

idea插件开发之定义侧边栏

写在前面 看下如何在侧边栏定义窗口&#xff0c;如下的效果&#xff1a; 1&#xff1a;正戏 先来定义UI&#xff0c;随便拖拽个组件&#xff0c;就看个效果&#xff1a; 接着定义一个工厂类来创建这个UI&#xff0c;需要实现接口com.intellij.openapi.wm.ToolWindowFactor…...

HarmonyOS未来五年的市场展望

一、引言 随着科技的不断进步和消费者对于智能化设备需求的日益增长&#xff0c;操作系统作为连接硬件与软件的核心平台&#xff0c;其重要性愈发凸显。HarmonyOS&#xff08;鸿蒙系统&#xff09;&#xff0c;作为华为自主研发的分布式操作系统&#xff0c;自诞生以来便备受瞩…...

R语言:什么是向量化操作(Vectorization)?

在R语言中&#xff0c;向量化操作是一个非常重要且强大的概念。它不仅提高了代码的简洁性和可读性&#xff0c;还大大提升了代码的执行效率。本文将详细介绍什么是向量化操作&#xff0c;并通过几个示例来展示其应用。 什么是向量化操作&#xff1f; 向量化操作是指在不使用显…...

Python 机器学习 基础 之 【实战案例】中药数据分析项目实战

Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 目录 Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 一、简单介绍 二、中药数据分析项目实战 三、数据处理与分析实战 1、数据读取 2、中药材数据集的数据处理与分析 2.1数据清洗 2.2、 提取别…...

python中报错“ModuleNotFoundError: No module named ‘docx2txt‘”

python中from langchain_community.document_loaders import Docx2txtLoader报错“ModuleNotFoundError: No module named ‘docx2txt’” 问题描述: python中from langchain_community.document_loaders import Docx2txtLoader报错“ModuleNotFoundError: No module named ‘…...

json.dumps参数

json.dumps&#xff08;&#xff09;是 Python 中json 模块的一个函数&#xff0c;用于将 Python 对象编码成 JSON格式的字符串。这个函数有几个常用的参数&#xff0c;下面是一些主要的参数及其描述&#xff1a; 1. **obj**&#xff1a; 必需。要转换的 Python 对象。 2. *…...

未来已来,划时代革命性产品——全息数字人管家系统,全网首发

尊敬的投资人、亲爱的网友们&#xff1a; 大家好&#xff0c;我是数字人管家项目总设计师&#xff0c;我叫William wang。在这个科技日新月异的时代&#xff0c;我们正站在一个前所未有的交汇点上&#xff0c;数字与现实的边界日益模糊&#xff0c;智能技术正以前所未有的方式…...

psql导入数据报错排查

问题&#xff1a;采用pg_dump导出表数据后&#xff0c;用psql导入表数据&#xff0c;导入时报错 无效的命令 \N定位该问题的方法 --进入psql \set ON_ERROR_STOP on --退出psqlpsql -U postgres -d test -v ON_ERROR_STOPon < /home/postgres/test.dmp参考文章&#xff1a…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...