第四节 nginx 配置文件

 

1 keepalive_timeout   65;  设定保存长久连接时长 0代表禁止, 若不设置默认是75s
2keepalive_requests   nu;  在一次长连接中允许接受的最多请求数,超出则断开连接
3keepalive_disable   none|browser   表示对那种浏览器禁止用长连接 browser是指360
4 send_timeout   time;    向客户端发送响应报文的超时时长,此处指两次写操作之间的时间间隔。超出时间表示服务器无法响应
5 client_body_buffer_size  大小; 用于接受客户请求报文body部分的缓冲大小,默认16K
超出次大小,将被暂存到磁盘上由client_body_temp_path 指定的位置
6 client_body_temp_path  /var/tmp/client_body  2  1  1 
设定用于存储客户端请求报文的body部分临时存放路径 2 1 1 表示
第一个数字: 表示用一位16进制数字表示一级子目录
第二个数字:表示用二级子目录
第三数字 :表示三级子目录
1 表示用一位16进制表示  2 表示用2位16进制表示
这里表示 2指有256个一级子目录, 每个一级子目录下有16个二级级子目录 ,每个二级子目录下有16个三级子目录
对客户端的限制配置:
Limit_rate      限传输速率  0表示无限制
Limit_execpt   对指定请求方式之外的其他方式的使用客户端 仅用于location
 
如  limit_except  GPT { 
Allow  192.168.0.0/24;
Deny  all;
}   除了GPT之外其他方式仅允许这个网段的主机访问
 
文件操作配置:
Alo  on|off  是否用alo功能
Directio  size |off ; 当文件大于或等于给定大小是同步写入到磁盘中,而非缓存
Openfile_cache  off;  可以将源数据缓存下来,
Openfile_cache  max=N;
Nginx 可以缓存已下三种信息:
1 文件的描述符,文件大小和最近一次修改时间
2打开目录结构
3没有找到的或没有权限访问的文件信息
Max_N :可以缓存的上限达到上限后使用LRU算法实现缓存管理
Incative=time  缓存非活动时长 ,在此处指定的时间内未命中或被命中的次数少于open_file_cache_min_uses  所指定的次数则为非活动项 将被删除
4 Open_file_cache_valid   time;  缓存项有效性的检查频率 默认60s
5 open_file_cache_min_uses  number;  是指在 Open_file_cache的 incative参数指定的时间内最少命中多少次则为活动项
 
模块介绍:
1 ngx_http_access_module       实现基于ip的访问控制
之上而下 检查 一旦匹配将生效
如 : location  /  {
Deny  192.168.1.1;
Allow 192.168.1.0/24;
Deny  all;
}
Ngx_http_auth_basic_module 基于用户访问控制使用basic机制进行认证
Auth_basic   string | off ;
Auth_basic_user_file   file;
如
location / {
                auth_basic "Admin Area";
                auth_basic_user_file /etc/nginx/.ngxpasswd;
        }
添加用户:htpasswd 命令 
第一次添加用户需加-c : htpasswd  -c   -m   /etc/nginx/.ngxpasswd   xiao
2 ngx_http_stub_module   用于输出nginx基本状态信息;
location / {
                 stub_status;
        }
  访问显示:
 
 
Active connections: 3
 
 
server accepts handled requests
 
 
3 3 1
 
 
Reading: 0 Writing: 1 Waiting: 2
 
 
 
Active  connections: 活动状态连接数
Accepts: 已接受的客户请求总数
Handled: 已处理
Requests : 请求发来的总的请求数
Reading: 处于读取请求
Writing: 处于写入的请求
Waiting: 处于等待的请求
 
3 ngx_http_log_module   指定日志格式记录请求
access_log  /var/log/nginx/access.log  main;
4 ngx_http_giz_module   用压缩方式响应数据 ,节省带宽
1 gzip  on|off       启用或禁止
2gzip  comp  level 6   压缩比由高到底  1--9  默认1
3 gzip_disable  regex ......   匹配到客户端的浏览器不压缩
4gzip_min_lenth  lenth   启用压缩功能的响应报文大小阀值
5gzip_http_version  1.0|1.1  设定启用压缩功能协议的最小版本 默认1.1
6gzip_buffers number size;   启动压缩功能,缓存区数量和每个缓存区大小
7gzip_type  text/html  :   指明对那种类型资源进行压缩
8gzip_vary  on|off  ; 如果启用压缩是否在响应报文首部插入vary
9gzip_proxied  off ; nginx充当代理是对后端服务器在何种情况是启用压缩功能
 
第五节
4 ngx_http_ssl_module
Ssl  on |off  启用ssl  建议用listen代替
Ssl_certificate  file  当前虚拟机使用PEM格式的证书文件
Ssl_sertificate_key  file   私钥文件
 ssl_session_cache  off ;  缓冲
None:通知客户端支持ssl缓冲但实际不支持
Builtin【size】使用ssl内建的缓存,为每个worker私有的
[share :name:size] :在worker之间共享缓存
ssl_session_timeout   客户连接可以复用的ssl  在缓冲中的有效时长
 
server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
实验
Ca:
1、首先要确保/etc/pki/CA下有certs、crl、newcerts、private四个目录,然后再创建所需要的文件 
2、]# (umask 077; openssl genrsa -out private/cakey.pem 2048)  创建私钥
3、生成证书请求,并自签 
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem 
-new:生成新证书签署请求 
-x509:专用于CA生成自签证书 
-key:生成请求时用到的私钥文件 
-days n:证书的有效期限 
-out /PATH/TO/SOMECERTFILE:证书的保存路径

要输入国家名、省份名、地区(市)名、组织或公司名、部门名、服务器名、Email地址 

 

ingress nginx 长连接 nginx 长链接配置_后端

 

Touch  index.txt
Echo  “01” > serial
命令行生成CA根证书
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

 

ingress nginx 长连接 nginx 长链接配置_缓存_02

 

 

服务端:

Mkdir  /etc/nginx/ssl
Cd    /etc/nginx/ssl
# (umask 077;openssl genrsa -out nginx.key 2048)  创建私钥
创建ca 需要与CA 服务填写信息一样
Openssl  req  -new   -key  nginx.key  -days 356  -out  /nginx.csr

 

ingress nginx 长连接 nginx 长链接配置_运维_03

 

传给CA:# scp nginx.csr 192.168.220.130:/tmp/
CA:
# openssl x509 -req -sha256 -CA /etc/pki/CA/ca.crt -CAkey /etc/pki/CA/ca.key -CAcreateserial -in nginx.csr -out nginx.crt 
]# scp /tmp/nginx.crt  192.168.220.135:/tmp/

 

ingress nginx 长连接 nginx 长链接配置_缓存_04

 

服务器:

 

问题;
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/pki/nginx/server.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: configuration file /etc/nginx/nginx.conf test failed

 

是证书颁发步骤不对

 

ingress nginx 长连接 nginx 长链接配置_ingress nginx 长连接_05

ingress nginx 长连接 nginx 长链接配置_ingress nginx 长连接_06

ingress nginx 长连接 nginx 长链接配置_nginx_07

ingress nginx 长连接 nginx 长链接配置_ingress nginx 长连接_08

Ngx_http_rewrite_module  模

将用户请求的URI 通过基于PCRE regex 描述的模式进行检查后完成重定向

1 rewrite  regex  replacrment  [flag]

将regex匹配到的重定向为replacement

注意在同一级别的匹配块中有多个rewrite规则,那么会自上而下检查,被某个规则匹配到完成后,会重新一轮的重定向检查

 

Flag 所表示的标记位用来控制此循环机制

Last:重写成功后,停止对当前URL 在当前location中后续的其他重写操作,而对新的URL 启动新的一轮重写检查,提前重启新一轮循环,不建议在location中使用。

Break:重写后停止对当前URI 在当前location中的后续重写操作,而后直接跳转至重写规则配置块之后的其他配置,结束循环,建议在location中使用

Redirect:临时重定向,重新后以新的URI 返回给客户端状态吗302

Permanent:永久重定向,重写后直接将新生成URI 返回给客户端 状态码301

 

If条件判断:
If ($request_method = post) {
Return 405;
}
比较操作符:
==
!=
~:模式匹配 区分大小写
~*:模式匹配 不区分大小写
!~:模式不匹配
文件目录判断:
-e  !e
-f   !-f
-d   !-d
-x   !-x
Set  $variable  value   用户自定义变量