nginx常用模块介绍

ngx_http_access_module模块的配置(基于IP的访问控制)

  1. allow address | CIDR | unix: | all;
  2. deny address | CIDR | unix: | all;

a)         应用上下文:http, server, location, limit_except

b)         eg:

location / {

deny  192.168.1.1;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2001:0db8::/32;

deny  all;

}

ngx_http_auth_basic_module模块的配置(basic认证)

  1. auth_basic string | off;

使用http basic认证协议对用户进行认证;读取auth_basic_user_file 指定文件

string:用来向用户展示一些提示信息,告诉用户为什么认证

off:代表不急于http basic进行加密

  1. auth_basic_user_file file;

实现用户认证的账号文件;

a)         文件格式:

name:password:comment

eg:name1:password1

name2:password2:comment

b)         密码格式:

htpasswd:使用此命令生成加密文件

eg:

location /admin/ {

auth_basic "Admin Area";

auth_basic_user_file /etc/nginx/.ngxhtpasswd;

}

ngx_http_stub_status_module模块配置

  1. stub_status;

用于输出Nginx的状态信息,通过指定的uri(http://ip:port/status)访问状态页面;

a)         页面信息如下

Active connections: 291

server accepts handled requests

16630948 16630948 31070465

Reading: 6 Writing: 179 Waiting: 106

b)         详解

Active connections:当前活动的客户端连接数;

accepts:已经接受的客户端连接总数量;

handled:已经处理过后客户端连接总数量;

requests:客户端的总的请求数量;

Readking:正在读取的客户端请求的数量;

Writing:正向其发送响应报文的连接数量;

Waiting:等待其发出请求的空闲连接数量;

ngx_http_referer_module模块配置

基于请求报文中的Referer首部的值做访问控制

  1. valid_referers  none | blocked | server_names | string ...;

a)         定义合法的referer数据,可以包含  none | blocked | server_names | string ...;中的一个或多个

none:请求报文不存在referer首部;

blocked:请求报文中存在referer首部,但其没有有效值,或其值非以http://或https://开头;

server_names:其值为一个主机名;例如server_names   *.example.com

arbitrary string:直接字符串,可以使用*通配符;

regular expression:以~起始的正则表达式;

b)         内置变量:$invalid_referer(所有不能符合valid_referer指定定义的引用请求均为不合法引用)

c)         eg:

valid_referers   none   blocked   server_names   *.example.com   example.*     www.example.org/galleries/   ~\.google\.;

if ($invalid_referer) {

return  403;

}

ngx_http_log_module模块的配置(访问日志)

  1. log_format  name  string  ...

定义日志格式及其名称;日志格式一般通过调用内置变量来定义;

默认:access_log logs/access.log combined;

  1. access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

access_log off;

访问日志文件路径,格式名称以及缓存大小、压缩比和刷写时间间隔;建议定义缓冲以提升性能;

  1. open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

open_log_file_cache off;

ngx_http_ssl_module模块配置

  1. ssl on | off

控制启用或禁止ssl

  1. ssl_certificate file;

当前虚拟主机使用的证书文件路径;

  1. ssl_certificate_key file;

当前虚拟主机使用的证书文件中的公钥配对的私钥文件;

补充:生成私钥方法

(umask 077;openssl genrsa -out ssl/nginx.key 1024)

生成证书

openssl req -new -key nginx.key -out nginx.csr -days 365

  1. ssl_ciphers ciphers;

指明由nginx使用的加密算法,可以是OpenSSL库中所支持各加密套件;

使用 openssl ciphers 命令查看支持的加密算法

  1. ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];

指明会话使用的ssl协议版本,默认为后三个;

注意SSLv2版本已经被证明是不安全的,建议不要使用

  1. ssl_session_cache off | none | [builtin[:size]] [shared:name:size];

指明ssl会话缓存机制;

off:绝对禁用ssl会话缓存

none:禁用ssl会话缓存

builtin:使用OpenSSL内置的ssl会话缓存机制,此机制为各worker私有;缺陷是有时候客户的几次会话可能会分别发送给不同worker进程,这样会导致会话缓存命中率不高

shared:与builtin不同之处在于,各worker之间使用一个共享的缓存;

name:缓存空间的名称;

size:缓存空间大小;每1M空间大约可缓存4000个会话

eg:ssl_session_cache  builtin:1000 shared:SSL:10m;

  1. ssl_session_timeout time;

ssl会话超时时长默认5分钟;即ssl session cache中的缓存有效时长;

nginx-(三)基本模块1的更多相关文章

  1. nginx 增加 lua模块

    Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: ./configure –wi ...

  2. Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用

    nginx可以通过limit_conn_zone 和limit_req_zone两个组件来对客户端访问目录和文件的访问频率和次数进行限制,另外还可以善用进行服务安全加固,两个模块都能够对客户端访问进行 ...

  3. nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)

    nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境 ...

  4. nginx內建模块使用

    目录 nginx內建模块使用 1. 內建模块的引入 1.1 查看安装信息 1.2 重新指定配置信息 2. 內建模块的使用 2.1 http_stub_status_module 2.2 http_ra ...

  5. nginx的ngx_http_geoip2模块以精准禁止特定地区IP访问

    要求:对网站的信息,比如某个访问节点不想国内或者国外的用户使用,禁止国内或者国外或者精确到某个城市的那种情况. 解决方式:1.Cloudfalre来实现禁止特定国家的ip访问,比较简单,但是需要mon ...

  6. Nginx 常用基础模块

    目录 Nginx 常用基础模块 Nginx日志管理 nginx日志切割 Nginx目录索引 Nginx状态监控 Nginx访问控制 Nginx访问限制 Nginx 请求限制配置实战 Nginx Loc ...

  7. Nginx 的过滤模块是干啥用的?

    上一篇文章我写了 Nginx 的 11 个阶段,很多人都说太长了.这是出于文章完整性的考虑的,11 个阶段嘛,一次性说完就完事了.今天这篇文章比较短,看完没问题. 过滤模块的位置 之前我们介绍了 Ng ...

  8. Nginx使用SSL模块配置https

    背景 开发微信小程序,需要https域名,因此使用Nginx的SSL模块配置https 步骤 一.去域名管理商(如腾讯云.阿里云等)申请CA证书 二.在Nginx中配置,一般情况下域名管理商会提供配置 ...

  9. 附002.Nginx代理相关模块解析

    一 ngx_http_proxy_module模块 1.1 proxy_pass配置 proxy_pass URL; Context: location, if in location, limit_ ...

  10. nginx 的常用模块

    nginx的常用模块 ngx_http_index_module Syntax: index file ...; Default: index index.html; Context: http, s ...

随机推荐

  1. 【Leetcode 做题学算法周刊】第二期

    首发于微信公众号<前端成长记>,写于 2019.11.05 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 20 ...

  2. (Java) AES-128 数据加密

    package com.vcgeek.hephaestus.utils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeyS ...

  3. 20190723_C中的调用可变函数

    今天联系了 C 中调用可变参函数 参考网站:https://www.runoob.com/cprogramming/c-standard-library-stdarg-h.html 代码1: 向被调用 ...

  4. opacity层叠问题

    使用了position属性值为 absolute.relative 的层,将会比普通层更高层次.使用了小于1的opacity属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支 ...

  5. MySQL字符集与排序规则总结

      字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因.一来两者本来就是相辅相成,相互依赖关联: 另外一方 ...

  6. 模拟80(a)

    其实隔壁的那套题比这套难的多....一道都不会.. T1 题目中已经给出了递推公式,那么这题就没什么了,直接矩阵乘就完了. 然而考场上并没有看出矩阵,主要是用了好久发明crt,我知道原理,但是不会打了 ...

  7. CSPS模拟 95

    T_T flag彻底倒了 虽然打一开始就没觉得能实现过 可是我好桑心T_T skyh那个没素质的还一直bb T_T

  8. 零基础小白入门IT开发指南

    先自我介绍以下,本人是一枚刚毕业不到两年的某一线城市的程序员,本科阶段专业是计算机科学与技术.从大四开始出去实习到现在的编码经验也有快2年半了,两年半的时间包括实习在内任职过有4家公司,包括一家互联网 ...

  9. C/C++企业链表的实现

    首先 先介绍企业链表 和Linux内核链表 和 之前我发的一篇单项链表的区别 结构体变量名是结构体的首地址吗? 这个问题会在待会链表实现中体现!! 答案:有些编译器 支持用结构体变量名做地址的方式但一 ...

  10. pscp命令详解

    注意:只能在winds下执行 环境准备 1.先下载pscp软件,这里是我的云盘地址: 链接:https://pan.baidu.com/s/1mkzRMv-aosC94KbMcMea9w 提取码:k0 ...