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

news2025/2/26 11:39:37

一,  自定义访问日志

(一)日志位置存放

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.coloradmin.cn/o/1477381.html

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

相关文章

[云原生] k8s之pod容器

一、pod的相关知识 1.1 Pod基础概念 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理…

虚拟机安装+固定ip地址

一、下载CentOS 二、安装CentOS 1、打开你的VMware Workstation Pro,并点击“创建新的虚拟机” 2、点选典型(推荐)(T),并点击“下一步” 3、点选稍后安装操作系统(S),并点击“下一步” 4、点选Linux,并点击“下一步” 6、点击“…

【探索AI】十一 深度学习之第1周:深度学习概述与基础

深度学习概述与基础 深度学习的发展历史与现状神经网络的基本原理前向传播与反向传播算法常见的激活函数与优化算法深度学习框架(如TensorFlow或PyTorch)进行基础操作 深度学习的发展历史与现状 深度学习的发展历史可以追溯到上世纪40年代,当…

java上机编程题面试,记一次美团Java研发岗的面试经历

第一篇:SpringBoot面试篇 1.1 35常见SpringBoot知识点 问题一:Spring Boot、Spring MVC 和 Spring 有什么区别? 问题二:什么是自动配置? 问题三:什么是 Spring Boot Stater ? 问题四&#x…

uniapp生成app包引导用户开启通知权限和热更新

uniapp生成app包引导用户开启通知权限和热更新 引导用户开启通知权限 export function setPermissions() {// #ifdef APP-PLUS if (plus.os.name Android) {var main plus.android.runtimeMainActivity();var pkName main.getPackageName();var uid main.getApplicationI…

数据库JSON类型到映射JAVA上

Mysql存放JSON数据如何映射JAVA实体类 概述:最近写在写SKU模块中,需要表中字段存放JSON类型数据,mybatis-plus在查询的时候如何跟JSON类型所匹配呢?再次记录一下。 直接上代码,后面有解释到底如何映射上的。 Mysql表…

java 商机管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 商机管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

跨越边界:Compose Multiplatform 跨平台开发的未来之路

跨越边界:Compose Multiplatform 跨平台开发的未来之路 1. 引言 在移动应用和软件开发领域,跨平台开发一直是一个备受关注的话题。随着移动设备多样化和用户需求的不断增长,开发者们迫切需要一种在多个平台上共享代码的解决方案。Jetpack C…

深入浅出JVM(十七)之并发垃圾收集器CMS

上篇文章介绍用户线程与GC线程并发执行时可能产生的问题以及使用三色标记法演示原始快照和增量更新两种解决方案 这篇文章将主要介绍并发垃圾收集器中的CMS,其中CMS使用增量更新来解决对象消失问题,如果不了解增量更新的同学可以查看上篇文章深入浅出JV…

oracle with check option 学习

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

day04_拦截器Apifox角色管理(登录校验,API接口文档,权限管理说明,角色管理,添加角色,修改角色,删除角色)

文章目录 1. 登录校验1.1 需求说明1.2 实现思路1.3 ThreadLocal1.4 AuthContextUtil1.5 拦截器使用1.5.1 拦截器开发1.5.2 拦截器注册 1.6 代码优化1.6.1 配置优化1.6.2 代码优化1.6.3 前端修改 2. API接口文档2.1 Apifox接口管理平台2.1.1 接口管理平台简介2.1.2 Apifox简介2.…

minGW-64-win使用

本文适用于win7 win10。 下载 官网下载地址:MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64/mingw-w64-release at SourceForge.net 不过我下了exe安装版报错,如下图,所以最后选择了zip方式。 zip版本解压 配置环境变量 ;C…

自定义el-dialog的样式

实现效果: 样式代码如下:(可以写在common.scss文件夹中) .el-dialog__header {padding: 16px 20px;border-bottom: 1px solid #DCDFE6;display: flex;align-items: center;.el-dialog__title {font-size: 16px;position: relativ…

Flask基础学习4

19-【实战】问答平台项目结构搭建_剪_哔哩哔哩_bilibili 参考如上大佬的视频教程&#xff0c;本博客仅当学习笔记&#xff0c;侵权请联系删除 问答发布的web前端页面实现 register.html {% extends base.html %}{% block head %}<link rel"stylesheet" href&qu…

C++ 反向迭代器的设计与实现

在本文开始之前&#xff0c;先明晰几个 关键词 的含义&#xff08;T : 模板参数&#xff09;&#xff1a; Ref : T& / const T&Ptr : T* / const T* 一、反向迭代器设计的上帝视角 我们希望将 反向迭代器 设计成一种适配器——传 list::iterator 得到 list 的反向迭代…

批量剪辑利器:轻松调整视频画面尺寸,打造专业级视听体验!

在数字时代&#xff0c;视频已成为我们生活中不可或缺的一部分。无论是制作个人Vlog、企业宣传片&#xff0c;还是进行专业的影视剪辑&#xff0c;调整视频画面的高度和宽度都是至关重要的一步。然而&#xff0c;面对大量视频文件&#xff0c;如何快速、高效地调整画面尺寸呢&a…

第四十六回 扑天雕两修生死书 宋公明一打祝家庄- Python使用闭包来将单个方法的类转换成函数

原来那人是鬼脸儿杜兴&#xff0c;在蓟州受过杨雄的恩&#xff0c;目前在扑天雕李应家里做主管。杨雄和石秀去拜见李应&#xff0c;李应写了封信&#xff0c;派了副主管送去祝家庄请求放了石迁。结果人家不答应。 李应又派了杜兴去&#xff0c;杜兴被羞辱而回。李应亲自带着人…

python自动化管理和zabbix监控网络设备(防火墙和python自动化配置部分)

目录 前言 一、ssh配置 1.FW1 2.core-sw1 3.core-sw2 二、python自动化配置防火墙 三、验证DNAT 四、验证DNAT 前言 视频演示请访问b站主页 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 一、ssh配置 给需要自动化管理的设备配置ssh服务端用户名和密码 1.FW1 …

TSINGSEE青犀AI智能分析网关V4智慧油田安全生产监管方案

一、方案背景 随着科技的不断发展&#xff0c;视频监控技术在油田行业中得到了广泛应用。为了提高油田生产的安全性和效率&#xff0c;建设一套智能视频监控平台保障安全生产显得尤为重要。本方案采用先进的视频分析技术、物联网技术、云计算技术、大数据和人工智能技术&#…

AI PC:赋能个人电脑的人工智能革命

导语&#xff1a;AI PC是一种集成了人工智能&#xff08;AI&#xff09;技术的个人电脑&#xff0c;它不仅具备传统PC的功能&#xff0c;还具备AI算力和AI功能。AI PC的出现为用户带来了更便捷、智能的使用体验&#xff0c;推动了PC行业的发展。本文将介绍AI PC的定义、特点以及…