nginx 日志,压缩,https功能介绍

一,  自定义访问日志

(一)日志位置存放

1,格式

2, 级别

level: debug, info, notice, warn, error, crit, alert, emerg

3,示例

服务机定义  错误日志存放位置

客户机错误访问

 查看错误日志

4, 将两个网站的 日志分离

手搓两个子配置文件:

(二) 自定义日志格式

注意如果开启 include  注意子配置文件与 日志格式的上下关系  ,   日志格式一定要在  include 之前 否则会不生效。

1,格式

以下是示例,格式可以定义多个

2,示例

(三)改ngin 日志格式为 json

方便ELK 去收集日志    因为 ELK 只支持

1,语法

log_format access_json '{"@timestamp":"$time_iso8601",''"host":"$server_addr",''"clientip":"$remote_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,''"upstreamtime":"$upstream_response_time",''"upstreamhost":"$upstream_addr",'  '"http_host":"$host",''"uri":"$uri",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"tcp_xff":"$proxy_protocol_addr",''"http_user_agent":"$http_user_agent",''"status":"$status"}';access_log logs/access.log access_json;

2,示例

服务机配置文件:

查看日志:

提取状态码:

 

(四) 日志分割

二,   Nginx压缩功能

支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module

官方文档: Module ngx_http_gzip_module

(一) 配置指令

gzip on | off;#启用或禁用gzip压缩,默认关闭
gzip_comp_level level;#压缩比由低到高从1到9,默认为1
gzip_disable "MSIE [1-6]\."; #禁用IE6 gzip功能
gzip_min_length 1k; #gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_http_version 1.0 | 1.1; #启用压缩功能时,协议的最小版本,默认HTTP/1.1
gzip_buffers number size;#指定Nginx服务需要向服务器申请的缓存空间的个数和大小,平台不同,默认:32 4k或者16 8k;
gzip_types mime-type ...;#指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错
gzip_vary on | off;#如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”,一般建议打开
gzip_static on | off;#预压缩,先压缩好,不用临时压缩,消耗cpu

(二)开启预压缩功能意义:

客户访问资源(除图片) 哪怕是看或者下载 都是get下载

所以搞预压缩 在cpu忙的时候 先压缩好(要我手动压) 而且不要有文件 只有压缩包也行

如果文件内容要改怎么么办?

原文件和压缩包都留          原文件改了 再次压缩

(三)预压缩实验步骤

三  ,https 功能

(一)https 功能介绍

1,协议组成

Web网站的登录页面都是使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议,HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

2,架构图

3, 详细过程

1,客户端发起HTTPS请求用户在浏览器里输入一个https网址,然后连接到服务器的443端口

2,服务端的配置采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥

3.传送服务器的证书给客户端
证书里其实就是公钥,并且还包含了很多信息,如证书的颁发机构,过期时间等等

4.客户端解析验证服务器证书这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书中公钥对该随机值进行非对称加密

5.客户端将加密信息传送服务器解密了这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密

6.服务端解密信息服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值

7.服务器加密信息并发送信息服务器将数据利用随机值进行对称加密,再发送给客户端

8.客户端接收并解密信息客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容

3,模块

nginx 的https 功能基于模块ngx_http_ssl_module实现,因此如果是编译安装的nginx要使用参数ngx_http_ssl_module开启ssl功能,但是作为nginx的核心功能,yum安装的nginx默认就是开启的,编译安装的nginx需要指定编译参数--with-http_ssl_module开启

4,语法

ssl on | off;此功能在1.15.0废弃
listen 443 ssl;为指定的虚拟主机配置是否启用ssl功能
ssl_certificate /path/to/file;#指向包含当前虚拟主机和CA的两个证书信息的文件,一般是crt文件  (要花钱买的 公有证书)
ssl_certificate_key /path/to/file;#当前虚拟主机使用的私钥文件,一般是key文件   (要花钱买的 公有证书)
ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2]; #支持ssl协议版本,早期为ssl现在是TLS,默认为后三个
ssl_session_cache off | none | [builtin[:size]] [shared:name:size];

#配置ssl缓存

off: #关闭缓存

none: #通知客户端支持ssl session cache,但实际不支持

 builtin[:size]:#使用OpenSSL内建缓存,为每worker进程私有

[shared:name:size]:#在各worker之间使用一个共享的缓存,需要定义一个缓存名称和缓存空间大小,一兆可以存储4000个会话信息,多个虚拟主机可以使用相同的缓存名称

ssl_session_timeout time;#客户端连接可以复用ssl session cache中缓存的有效时长,默认5m

5, 生成密钥工具

6 实验示例openssl  加密

1,模拟生成

把公钥与证书放到  /apps/nginx/conf.d/ssl/

2, #所有的证书需要放在一起不能移开

 3, 获得证书与  公钥

4, 手写配置文件

5,当访问 https://192.168.217.66  会显示

因为这是 自签名证书    没花钱买!

7, 自动加密

$1 代表 (.*) 的内容

redirect 意思 跳转

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

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

相关文章

DAY9-防病毒AV概述

DNS过滤 URL过滤和DNS过滤对比

C#面:ref 和 out 的区别

ref 关键字: 在使用 ref 关键字时,传递的参数必须在方法调用之前进行初始化。在方法内部,对 ref 参数的任何修改都会影响到原始变量。ref 参数在方法内部和外部都必须具有相同的类型。 out 关键字 out 参数在方法内部必须被赋值。在使用 ou…

广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用

世界移动通信大会2024期间,广和通宣布:5G智能模组SC171除支持Android操作系统外,还兼容Linux和Windows系统,帮助更多智能终端客户快速迭代产品,拓宽智能化应用覆盖范围。 广和通SC171系列基于高通QCM6490物联网解决方案…

oracle with check option 学习

with check option保证了通过视图进行的修改,必须也能通过该视图看到修改后的结果; 你插入,那么插入这条记录在刷新视图后必须可以看到; 如果修改,修改完的结果也必须能通过该视图看到; scott登录了以后创…

【Java程序设计】【C00320】基于Springboot的招生宣传管理系统(有论文)

基于Springboot的招生宣传管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的招生宣传管理系统,本系统有管理员以及招生人员二种角色; 前台:首页、专业介绍、师资力量、联…

Vue3.0+TS管理系统基础使用之变量声明、计算属性、监听属性

将近一年没写过管理系统了,上一次用的还是vue2js,这次接手的项目是Vue3ts,一眼看过去好熟悉的style,第二眼开始蒙,数据写哪?计算属性咋写啊? 这里用到了一个第三方库vue-property-decorator。 …

Spring Boot项目中如何上传头像?

在我们常见的各大App中,或多或少我们都见过上传头像的功能吧?? 但是在Spring Boot项目中如何上传头像呢? 上传头像主要用到RequestPart注解 来看一下小编的代码吧! RestController RequestMapping("/param"…

cartographer ceres后端优化

这里引用一篇文章 https://zhuanlan.zhihu.com/p/567635409 因为cartographer中的代码有的地方添加了AddParameterBlock,有的地方没有添加,会引起歧义,原来AddParameterBlock可以隐式添加优化变量,这篇文章介绍了具体原因,核心内容如下: AddParameterBlock的作用作用一:…

服务器机房安全守护:五大物理安全实践

服务器机房是数字企业的心脏。无论是企业家还是经验丰富的IT专业人员,都知道服务器机房的安全性至关重要。如果没有采用适当的物理安全措施,其服务器很容易受到盗窃、人为破坏和自然灾害的破坏。 在保护服务器机房的领域内,需要采用多方面的…

鸿蒙应用程序包安装和卸载流程

开发者 开发者可以通过调试命令进行应用的安装和卸载,可参考多HAP的调试流程。 图1 应用程序包安装和卸载流程(开发者) 多HAP的开发调试与发布部署流程 多HAP的开发调试与发布部署流程如下图所示。 图1 多HAP的开发调试与发布部署流程 …

16. QML中的一些粒子特效

1.说明 在使用unity开发游戏时,都会涉及到一些特效的开发。实际上在QML中也提供了一些可以做特效的控件,称之为粒子系统。本篇博客主要记录一些使用粒子做特效的方式。 特效–火焰效果: 2. 案例汇总 2.1 案例1 效果展示: 粒子…

TypeScript 类型断言 关于 “ as “ 语法的各种用法

在 TypeScript 中,as 关键字用于类型断言,允许你将某个值强制转换为你期望的类型。下面是一些使用as关键字将值断言为不同类型的例子: 断言为 Object let someValue: any { ... }; let obj someValue as Object;断言为 string let someV…

标准库`random`函数大全:探索Python中的随机数生成【第107篇—`random`函数大全】

标准库random函数大全:探索Python中的随机数生成 随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了random模块,用于生成各种随机数。本篇博客将深入探讨random模块的各种函数,以及它们的应用场景和代码…

MATLAB中的makeweight函数

W makeweight(dcgain,[freq,mag],hfgain) W makeweight(dcgain,[freq,mag],hfgain,Ts) W makeweight(dcgain,[freq,mag],hfgain,Ts,N) W makeweight(dcgain,wc,hfgain,___) W makeweight(dcgain,wc,hfgain,___)表示增益交叉频率wc。该语法相当于将…

2.27数据结构

1.链队 //link_que.c #include "link_que.h"//创建链队 Q_p create_que() {Q_p q (Q_p)malloc(sizeof(Q));if(qNULL){printf("空间申请失败\n");return NULL;}node_p L(node_p)malloc(sizeof(node));if(LNULL){printf("申请空间失败\n");return…

AI:144-通过机器学习预测股票市场趋势

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

LLM int4算法autoround v0.1即将发布,欢迎试用

概述 AutoRound(https://github.com/intel/auto-round)实现了出色的量化性能,在W4G128上多数场景中接近无损压缩,适用于包括gemma-7B、Mistral-7b、Mixtral-8x7B-v0.1、Mixtral-8x7B-Instruct-v0.1、Phi2、LLAMA2等一系列流行模型…

华为云磁盘挂载

华为云磁盘挂载 磁盘挂载情况 fdisk -l 2. 查看当前分区情况 df -h 3.给新硬盘添加新分区 fdisk /dev/vdb 4.分区完成,查询所有设备的文件系统类型 blkid 发现新分区并没有文件系统类型(type为文件系统具体类型,有ext3,ext4,xfs,iso9660等…

tinymce在vue3中的用法以及文本流式输出

一、版本 "tinymce/tinymce-vue": "4.0.5", "tinymce": "5.10.2", 二、步骤 具体步骤可以参考tinymce在vue2中的用法中的步骤 三、在项目index.html-body中引入tinymcejs <script src"tinymce/tinymce.min.js">&…

k8s 集群调度,标签,亲和性和反亲和性,污点和容忍,pod启动状态 排错详解

目录 pod启动创建过程 kubelet持续监听的原因 调度概念 调度约束 调度过程 优点 原理 优先级选项 示例 指定调度节点 标签基本操作 获取标签帮助 添加标签&#xff08;Add Labels&#xff09;&#xff1a; 更新标签&#xff08;Update Labels&#xff09; 删除标…