高级配置
nginx高级配置
状态页
基于nginx模块ngx\_http\_auth\_basic\_module实现,在编译安装nginx的时候需要添加编译参数–with-http\_stub\_status\_module,否则配置完成之后监测会是提示语法错误
第三方模块
第三模块是对nginx 的功能扩展,第三方模块需要在编译安装Nginx 的时候使用参数–add-module=PATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制开发的,有的模块是开源爱好者开发好之后上传到github进行开源的模块,nginx支持第三方模块需要从源码重新编译支持,比如开源的echo模块 https://github.com/openresty/echo-nginx-module
变量使用
nginx的变量可以在配置文件中引用,作为功能判断或者日志等场景使用,变量可以分为内置变量和自定义变量,内置变量是由nginx模块自带,通过变量可以获取到众多的与客户端访问相关的值。
内置变量
自定义变量
自定义访问日志
访问日志是记录客户端即用户的具体请求内容信息,全局配置模块中的error\_log是记录nginx服务器运行时的日志保存路径和记录日志的level,因此有着本质的区别,而且Nginx的错误日志一般只有一个,但是访问日志可以在不同server中定义多个,定义一个日志需要使用access\_log指定日志的保存路径,使用log\_format指定日志的格式,格式中定义要保存的具体日志内容
自定义默认格式日志
如果是要保留日志的源格式,只是添加相应的日志内容
自定义json格式日志
json格式的日志访问统计
压缩功能
Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。
Nginx对文件的压缩功能是依赖于模块ngx\_http\_gzip\_module,官方文档: https://nginx.org/en/docs/http/ngx\\_http\\_gzip\\_module.html
https功能
Web网站的登录页面都是使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议,HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据

https 实现过程如下
1、客户端发起HTTPS请求
客户端访问某个web端的https地址,一般都是443端口
2、服务端的配置
采用https协议的服务器必须要有一套证书,可以通过一些组织申请,也可以自己制作,目前国内很多网站都自己做的,当你访问一个网站的时候提示证书不可信任就表示证书是自己做的,证书就是一个公钥和私钥匙,就像一把锁和钥匙,正常情况下只有你的钥匙可以打开你的锁,你可以把这个送给别人让他锁住一个箱子,里面放满了钱或秘密,别人不知道里面放了什么而且别人也打不开,只有你的钥匙是可以打开的。
3、传送证书
服务端给客户端传递证书,其实就是公钥,里面包含了很多信息,例如证书得到颁发机构、过期时间等等。
4、客户端解析证书
这部分工作是有客户端完成的,首先回验证公钥的有效性,比如颁发机构、过期时间等等,如果发现异常则会弹出一个警告框提示证书可能存在问题,如果证书没有问题就生成一个随机值,然后用证书对该随机值进行加密,就像2步骤所说把随机值锁起来,不让别人看到。
5、传送4步骤的加密数据
就是将用证书加密后的随机值传递给服务器,目的就是为了让服务器得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值进行加密解密了。
6、服务端解密信息
服务端用私钥解密5步骤加密后的随机值之后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,对称加密就是将信息和私钥通过某种算法混合在一起,这样除非你知道私钥,不然是无法获取其内部的内容,而正好客户端和服务端都知道这个私钥,所以只要机密算法够复杂就可以保证数据的安全性。
7、传输加密后的信息
服务端将用私钥加密后的数据传递给客户端,在客户端可以被还原出原数据内容。
8、客户端解密信息
客户端用之前生成的私钥获解密服务端传递过来的数据,由于数据一直是加密得,因此即使第三方获取到数据也无法知道其详细内容
ssl配置参数
nginx 的https 功能基于模块ngx\_http\_ssl\_module实现,因此如果是编译安装的nginx要使用参数
ngx\_http\_ssl\_module开启ssl功能,但是作为nginx的核心功能,yum安装的nginx默认就是开启的,编译安装的nginx需要指定编译参数–with-http\_ssl\_module开启,官方文档: https://nginx.org/en/docs/http/ngx\\_http\\_ssl\\_module.html
自签名证书
nginx证书配置
实现多域名HTTPS
关于favicon.ico
favicon.ico 文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错
小结
1、nginx状态页面
2、nginx第三方模块echo便于调试
3、引用nginx内置变量,也可以自定义变量
4、生成json日志格式方便解析
5、压缩功能,压缩会节省带宽,占用CPU资源,根据实际情况配置
6、ssl功能,ssl缓存功能官网说明所有工作进程之间共享的缓存。缓存大小以字节为单位;一兆字节可以存储大约4000个会话。每个共享缓存应具有任意名称。具有相同名称的缓存可以在多个虚拟服务器中使用
7、关于favicon.ico文件404,此文件是网站图标文件,测试环境可以创建一个空文件。2333
curl -I -L -k http://192.168.10.2
最大跳转次数限制为50次
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...
keepalived