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

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

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

相关文章

【C语言初阶】循环语句

🌟博主主页:我是一只海绵派大星 📚专栏分类:C语言 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、什么是循环语句 二、while语句 while语句中的break和continue break continue 三、for循环 break和continue在for循…

MAC安装idea教程

https://blog.csdn.net/qq_41810415/article/details/131649541 JDK安装 https://blog.csdn.net/dddebug/article/details/121713633 2、编辑.bash_profile文件 vim .bash_profile 进入编辑模式后 按 i 开始添加内容 结束编辑模式按 ESC 结束后保存输入 :wq! 不保存输入 :q! 检…

C++ - Clion安装Qt msvc2017版本教程,基础环境配置clion+ Qt5.12.12 msvc2017 + VS2019

背景:平时代码开发使用clion,但使用项目要制定mscv2017版本Qt。先装过mingw版本Qt无法运行,但msvc版本依赖装有Visual Studio,本地装的又是2019版。就出现了这个大坑,需要配置好clion Qt msvc2017 VS2019。 文章目录 …

【Git】Windows下使用可视化工具Sourcetree

参考:[最全面] SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR) 1.Git工具–sourcetree 之前文章介绍过Linux系统中的Git工具&…

Linux - 信号概念 信号产生

Linux - 信号概念 & 信号产生 信号概念信号产生软件信号killraiseabortalarm 硬件信号键盘产生信号硬件中断 信号概念 信号是进程之间事件异步通知的一种方式 在Linux命令行中,我们可以通过ctrl c来终止一个前台运行的进程,其实这就是一个发送信号的…

Mock数据

Mock 数据 引入依赖 <dependency><groupId>com.github.jsonzou</groupId><artifactId>jmockdata</artifactId><version>4.3.0</version></dependency>mock 数据 MockConfig mockConfig new MockConfig().sizeRange(1, 1);A.…

爱德华三坐标软件ACdmis.AC-dmis密码注册机

爱德华三坐标软件 AC-DMIS 是一款功能强大的三坐标测量软件&#xff0c;具有以下特点&#xff1a; • 支持多种测量模式&#xff1a;包括接触式测量、非接触式测量、复合式测量等&#xff0c;可以满足不同类型工件的测量需求。 • 高精度测量&#xff1a;采用先进的测量算法和…

助力高考,一组彩色的文字

1、获取文本内容 首先&#xff0c;获取每个<div>元素的文本内容&#xff0c;并清空其内部HTML&#xff08;innerHTML ""&#xff09;。 2、创建<span>元素 然后&#xff0c;它遍历文本的每个字符&#xff0c;为每个字符创建一个新的<span>元素…

通过python操作redis(windows)

注意在连接之前要确保 redis 服务已经安装。 更多的安装信息请查看&#xff1a;https://blog.csdn.net/sinat_20471177/article/details/132042779?spm1001.2014.3001.5501 redis 模块 Python 要使用 redis&#xff0c;需要先安装 redis 模块。如果要做数据导入/导出操作的…

34、matlab输入命令汇总

1、ans:最近计算的答案 代码示例1 12ans 3 代码示例2 Brand(7)B 列 1 至 60.7060 0.3171 0.1869 0.6797 0.5853 0.95930.0318 0.9502 0.4898 0.6551 0.2238 0.54720.2769 0.0344 0.4456 0.1626 0.7513 0.13860.0462 0.4387…

java程序100道01—20

1&#xff0e;用循环的嵌套&#xff0c;输出输出如下图形 * * * * * * * * * * * * * * * * * * * * * * * * * package Exercises.One_Hundred; ​ public class Demo01 {public static void main(String[] args) {for(int i1;i<5;i){for(int j1;j<2*i-1;j){Sys…

数字IC必备知识点:【0】文章汇总

碎碎念&#xff1a;时隔几个月&#xff0c;终于想起了账号密码终于意识到不应该再继续摸鱼了&#xff0c;打算整理一些数字IC相关的知识点供大家参考&#xff0c;也希望我们的数字IC产业越来越好~(ง •_•)ง 文章目录&#xff1a; 这就是本期的全部内容啦&#xff0c;整理不易…

[Vue3:组件通信)子组件props接收和watch监听,emit发送父组件 (添加修改设置成绩,添加、删除选课记录)

文章目录 一&#xff1a;系统功能&#xff1a;设置成绩&#xff08;添加或修改&#xff09;交互逻辑&#xff1a;涉及页面 Page02.vue&#xff0c;ModalEdit.vue主页面Page.vue注入子页面&#xff0c;使用子页面标签属性主页面对子页面做通信&#xff0c;子页面ModalEdit接收参…

【安装笔记-20240610-Linux-免费域名服务之eu.org】

安装笔记-系列文章目录 安装笔记-20240610-Linux-免费域名服务之eu.org 文章目录 安装笔记-系列文章目录安装笔记-20240610-Linux-免费域名服务之eu.org 前言一、软件介绍名称&#xff1a;eu.org主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-23.05.3-x86-64注册填写…

【笔记】从零开始大模型开发与微调:基于PyTorch与ChatGLM

从零开始大模型开发与微调&#xff1a;基于PyTorch与ChatGLM 2023.11.1版 介绍DL应用、大模型&#xff0c;ChatGLM 由清华大学自主研发&#xff0c;基于 General Language Model (GLM) 架构的一种最新型、最为强大的深度学习大模型。 1、经过约 1T 标识符的中英双语训练&#…

微信小程序轮播

1. 基本用法 在微信小程序中使用轮播组件通常需要以下几个步骤&#xff1a; 引入组件&#xff1a;在小程序页面的 WXML 文件中引入轮播组件&#xff0c;例如&#xff1a; htmlCopy Code <swiper indicator-dots"{{indicatorDots}}" autoplay"{{autoplay}}&q…

基于机器学习和深度学习的NASA涡扇发动机剩余使用寿命预测(C-MAPSS数据集,Python代码,ipynb 文件)

以美国航空航天局提供的航空涡扇发动机退化数据集为研究对象&#xff0c;该数据集包含多台发动机从启动到失效期间多个运行周期的多源传感器时序状态监测数据&#xff0c;它们共同表征了发动机的性能退化情况。为减小计算成本&#xff0c;需要对原始多源传感器监测数据进行数据…

Java——方法详细介绍

一、方法调用机制 1、方法调用机制详细介绍 下面对方法调用在内存中的情况进行分析&#xff0c;以下面的代码为例&#xff1a; public class Test {public static void main(String[] args) {Person person new Person();person.name "张三";person.age 18;int…

前端杂谈-警惕仅引入一行代码言论

插入一行 JavaScript 代码似乎是一种无受害者犯罪。这只是一个小脚本&#xff0c;对吧&#xff1f;但 JavaScript 可以导入更多 JavaScript。-杰里米基思 “这只是一行代码”是我们经常听到的宣传语。这也可能是我们对自己和他人说的最大的谎言。 “仅用一行添加样式”&#x…

【Linux文件篇】优化文件读写,加速数据处理策略——缓冲区

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;我们已经复习了C语言中的接口&#xff0c;并且学习了许多文件系统调用&#xff0c;了解了文件描述符以及重定向。今天我们继续学习文件缓冲区的相关内容。 缓冲区 在学习C语言时&#xff0c;我们经常…