(四)nginx高级配置

1.nginx状态页

基于nginx模块ngx_http_auth_module实现,需要编译安装nginx的时候添加编译参数–with-http_stub_status_modle,否则提示语法错误。
在实际工作中也会开启该状态页查看nginx当前的状态,后期也可根据脚本获取这几个的状态值,根据zabbix等监控工具进行展示。

location /nginx_status {
   stub_status on; #该参数需要开启
   allow 192.168.142.0/24;
   allow 127.0.0.1;
   deny all;
}

参数详解:

Active connections: 3 
server accepts handled requests
 4 4 2 
Reading: 0 Writing: 1 Waiting: 2 

active connections:当前处于活动状态的客户端连接数,包括连接等待空闲连接数
accepts:统计总值,nginx自启动后已经接受的客户端请求的总数
handled:统计总值,nginx自启动已经处理完成的客户端请求的总数,通常等于accepts
requests:统计总值,nginx自启动后客户端发来的总的请求数

reading:当前状态,正在读取客户端请求报文首部的连接数
writing:当前状态,正在向客户端发送响应报文过程中的连接数
waiting:当前状态,正在等待客户端发出请求的空闲连接数,开启keep-alive的情况下这个值等于active-(reading+writing)

2.nginx内置变量使用

nginx的变量可以在配置文件中引用,作为功能判断或者日志等场景。
变量可以分为内置变量和自定义变量,内置变量是由nginx模块自带,通过变量可以获取到众多的与客户端访问相关的值。

内置变量:
$remote_addr:存放了客户端的地址,注意是客户端的公网ip
$args:存放了url中的指令
例如http://www.magedu.net/main/index.do? id=20190221&partner=search中的id=20190221&partner=search
$document_root:保存了针对当前资源的请求的系统根目录
$document_uri:保存了当前请求中不包含指令的uri
$host:存放了请求的host名称
$http_user_agent:客户端浏览器的详细信息
$http_cookie:客户端的cookie信息
limit_rate 10240;
echo $limit_rate; #如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,没有设置则显示0
$remote_port:客户端请求nginx服务器时随机打开的端口,这是每个客户端自己的端口
$remote_user:已经经过auth basic module验证的用户名
$request_body_file:做反向代理时发给后端服务器的本地资源名称
$request_method:请求资源的方式,GET/PUT/DELETE
$request_filename请求的资源文件的路径名称,由root或alias指定与uri请求生成的文件绝对路径
$request_uri:包含请求参数的原始URI
$scheme:请求的协议,ftp,https,http
$server_protocol:保存了客户端请求资源使用的协议版本,HTTP/1.0,HTTP/1.1,HTTP/2.0
$server_addr:保存了服务器的ip地址
$server_port:请求的服务器的端口号

自定义变量:
自定义变量需要使用指定set指定
如:set $name value

location /main {
    index index.html;
    default_type text/html;
    set $name "xiaoma";
    echo $name;
    set $linux36 $server_name;
    echo $linux36;
}

4.nginx压缩

nginx对文件的压缩功能是依赖于模块ngx_http_gzip_module模块
如果没有添加该模块该如何添加呢?
–with-http_gzip_static_module

gzip on;            #开启或禁用gzip压缩,默认关闭
gzip_comp_level 3;  #压缩比由低到高从1到9,默认为1,一般设置3-5就可以
gzip_min_length 1k; #gzip压缩的最小的文件,小于设置值的文件将不会压缩
gzip_vary on;       #如果启动压缩,是否响应报文首部插入'Vary:Accept-Encoding'
gzip_http_version 1.0 | 1.1  #启用压缩功能时,协议的最小版本,默认1.1
gzip_disable "MSIE [1-6]\."; #禁用IE6 gzip功能
gzip_types text/html         #指明仅对哪些类型的资源执行压缩,默认为text/html

5.https功能

nginx的https功能基于模块ngx_http_ssl_module实现,因此如果编译安装的nginx要使用参数
编译安装需要开启该参数–with-http_ssl_module

ssl on | off;     #是否开启ssl功能
ssl_certificate /path/to/file;  #当前虚拟机使用的公钥文件,一般是crt文件
ssl_certificate_key /path/to/file#当前虚拟机使用的私钥文件,一般是key文件
ssl_session_timeout time; #客户端连接可复用ssl session中缓存的有效时长,默认5m
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个会话信息,多个虚拟主机可以使用相同的缓存名称

6.浏览器不显示nginx版本

为了安全尽量不展示nginx的版本

vim src/http/ngx_http_header_filter_module.c
修改第49行,修改名称
然后重新编译

7.浏览器图标favicon.ico

favicon.ico文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件
解决办法:

将图标保存到指定目录
location = /favicon.ico { 
  root /data/nginx/html/pc/images; 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持,坚持,再坚持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值