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

news2025/2/26 22:15:07

目录

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---------

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

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

相关文章

SpringTask-Timer实现定时任务

1、Timer 实现定时任务 1.1、JDK1.3 开始推出定时任务实现工具。 1.2、API 执行代码 public static void main(String[] args) throws ParseException {Timer timer new Timer();String str"2024-06-10 23:24:00";Date date new SimpleDateFormat("yyyy-MM…

【docker】日志

ocker 日志相关的操作主要涉及查看、管理和理解容器的日志输出。以下是一些常用的 Docker 日志命令和选项: 查看日志 docker logs container_id_or_name:获取指定容器的日志。docker logs -f container_id_or_name:跟随(实时输出…

idea开发java高校社团推广管理系统springboot框架web结构java编程计算机网页LayUI技术

一、源码特点 java 高校社团推广管理系统是一套完善的完整信息系统,结合java web开发springboot框架和LayUI框架完成本系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要…

使用Vue CLI在其他磁盘创建项目出现错误及解决

Vue CLI是Vue.js官方推出的脚手架工具,可以帮我们快速的创建Vue项目框架。 我们创建Vue项目时一般默认都是在C盘,但由于某些因素我们需要在其他磁盘上创建Vue项目。 通过“winr”打开终端时默认位置都是C盘,但是Vue CLI不接受绝对路径作为参…

C++ | Leetcode C++题解之第143题重排链表

题目: 题解: class Solution { public:void reorderList(ListNode* head) {if (head nullptr) {return;}ListNode* mid middleNode(head);ListNode* l1 head;ListNode* l2 mid->next;mid->next nullptr;l2 reverseList(l2);mergeList(l1, l…

OpenCV 双目三角法计算点云

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基于三角法计算点坐标的过程类似于我们人类眼睛观察事物的过程: 如上图所示,通过两个相机观察到同一位置,我们可以通过两个相机得到这一位置的投影坐标 ( u r , v r ) , ( u l , v l )

IDEA:配置Golang的开发环境

1、下载&安装 进入GO的官网下载对应的GO 我们可以下载安装版,不过本人习惯下载解压版,这个因个人而异 2、配置环境变量 GOBIN : %GOROOT%\bin GOPATH : D:\MyGo 工作区间 GOROOT : D:\Program Files\Go GOJDK地址PATH: %GOBIN% ; %GOROOT%\bin ; …

Django模板的使用(详细版)

1、配置 在工程中创建模板目录templates(这个名字可以变!!) 在settings.py配置文件中修改TEMPLATES配置项的DIRS值 2、定义模板 在templates目录中新建一个模板文件,如index.html 3、模板渲染 Django提供了一个函数…

lua对接GPT4实现对话

演示效果: 准备材料: 1、FastWeb网站开发服务:fwlua.com 2、一台服务器 该示例使用开源项目:fastweb 实现。 代码比较简单,主要是两部分,一个lua代码和一个html页面,用来用户发起请求和后台…

【Bazel入门与精通】 rules之属性

https://bazel.build/extending/rules?hlzh-cn#attributes Attributes An attribute is a rule argument. Attributes can provide specific values to a target’s implementation, or they can refer to other targets, creating a graph of dependencies. Rule-specifi…

LeetCode 算法:矩阵置零c++

原题链接🔗:矩阵置零 难度:中等⭐️⭐️ 题目 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1…

13. UDP协议与RTP协议

UDP协议 UDP协议比较简单: UDP的长度是固定的,用总长度-UDP长度就是数据长度。 UDP是不保证他的有序性和可靠性的。对于音频和视频是这样是比较好的,因为这段丢了,我们可以从下一段在开始解码。 RTP RTP 协议概述 RTP&#x…

【讲解下Chrome DevTools,什么是Chrome DevTools?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

C语言 | Leetcode C语言题解之第143题重排链表

题目: 题解: struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while (fast->next ! NULL && fast->next->next ! NULL) {slow slow->next;fast fast->next-&g…

109.网络游戏逆向分析与漏洞攻防-装备系统数据分析-商店与捨取窗口数据的处理

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包…

CA证书及PKI

文章目录 概述非对称加密User Case: 数据加密User Case: 签名验证潜在问题 CACA证书的组成CA签发证书流程CA验证签名流程CA吊销证书流程 PKI信任链证书链 概述 首先我们需要简单对证书有一个基本的概念,以几个问题进入了解 ❓ Question1: 什么是证书? 证…

[大模型]GLM-4-9b-Chat 接入 LangChain

环境准备 在 01-ChatGLM4-9B-chat FastApi 部署调用 的 环境准备和模型下载基础上,我们还需要安装 langchain 包。如果不需要使用fastapi相关功能,则可以不安装 fastapi、uvicorn、requests。 pip install langchain0.2.1注意langchain这里使用2024年5…

idea如何使用git reset进行回退以及如何使用git stash将暂存区文件储藏,打包后重新恢复暂存区文件

最近遇到一个棘手的问题,本来按照计划表开发,但是项目经理突然让你改一个小bug,改完需要马上部署到线上,但是你手上的活做到一半还没做完,提交上去那肯定是不可行的。这时就可以使用git stash命令先把当前进度&#xf…

BUUCTF---web---[GYCTF2020]Blacklist

1、来到题目连接页面 2、测试单引号和双引号,单引号报错,双引号没报错 1 1" 3、使用万能句式 4、使用堆叠注入测试,查看数据库名 1;show databases;# 5、查看表名 1;show tables;# 6、查看FlagHere中字段名 1;show columns from FlagH…

(BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)

6.开启 Spring Boot 特性有哪几种方式? 7.Spring Boot 需要独立的容器运行吗? 8.运行 Spring Boot 有哪几种方式? 9.Spring Boot 自动配置原理是什么? 10.Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?…