ngx_http_access_module模块
ngx_http_auth_basic_module模块
ngx_http_stub_status_module模块
ngx_http_log_module模块
ngx_http_gzip_module模块
ngx_http_ssl_module模块
ngx_http_rewrite_module模块
ngx_http_referer_module模块
ngx_http_headers_module模块

ngx_http_access_module模块

这个模块只有2个指令

格式:
allow address | CIDR | unix: | all;  #允许访问
deny address | CIDR | unix: | all;   #拒绝访问

示例

location / {root   html;index  index.html index.htm;allow 192.168.253.129;  ##允许192.168.253.129访问deny 192.168.253.139;    ##拒绝192.168.253.139访问
}

ngx_http_auth_basic_module模块

实现基于用户的访问控制,使用basic机制进行用户认证;

修改配置文件

location / {root   html;index  index.html index.htm;auth_basic  "Admin"; ##认证对话框的提示字符串显示的内容auth_basic_user_file /usr/local/nginx/conf/htpasswd; ##存放认证用的用户名和文件,需要用htpasswd命令生成
}

安装一下htpasswd命令

yum install httpd-tools

生成nginx用户和密码文件

[root@localhost nginx]# htpasswd  -c /usr/local/nginx/conf/htpasswd nginx
New password:
Re-type new password:
Adding password for user nginx

重启一下nginx然后访问

nginx -s reload


然后用我们刚才设置的用户密码登陆就可以了

ngx_http_stub_status_module模块

这个模块主要是用来查看http的状态信息的,使用方式直接在location里面加stub_status;就可以了

示例

location /admin/ {alias /var/www/html/;stub_status;##重点是这一个指令
}

重新装载一下配置文件

nginx  -s reload

接下来我们访问网站

Active connections: 3
server accepts handled requests16 16 54
Reading: 0 Writing: 1 Waiting: 2 
  • Active connections: 活动状态的连接数;
  • accepts:已经接受的客户端请求的总数;
  • handled:已经处理完成的客户端请求的总数;
  • requests:客户端发来的总的请求数;
  • Reading:处于读取客户端请求报文首部的连接的连接数;
  • Writing:处于向客户端发送响应报文过程中的连接数;
  • Waiting:处于等待客户端发出请求的空闲连接数;

ngx_http_log_module模块

nginx日志模块
几个重要的指令

  • log_format name string …;
    string可以使用nginx核心模块及其它模块内嵌的变量;

  • access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
    access_log off;
    访问日志文件路径,格式及相关的缓冲的配置;

  • open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
    open_log_file_cache off;
    缓存各日志文件相关的元数据信息;

    • max:缓存的最大文件描述符数量;
    • min_uses:在inactive指定的时长内访问大于等于此值方可被当作活动项;
    • inactive:非活动时长;
    • valid:验正缓存中各缓存项是否为活动项的时间间隔;

ngx_http_gzip_module模块

压缩模块,有利于传输数据的大小减少,但是cpu使用会变高。因为要对传输的数据进行压缩。
1. gzip on | off;
开启或关闭压缩功能
2.gzip_comp_level level;
设置压缩比,一般使用6
3. gzip_disable regex …;
对请求报文的“User-Agent”匹配成功的请求,不进行压缩。
4. gzip_min_length length;
启用压缩功能的响应报文大小阈值;大于某个值才开启压缩功能
5. gzip_buffers number size;
支持实现压缩功能时为其配置的缓冲区数量及每个缓存区的大小;
6. gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any …;
nginx作为代理服务器接收到从被代理服务器发送的响应报文后,在何种条件下启用压缩功能的;

  • off:对代理的请求不启用
  • no-cache, no-store,private:表示从被代理服务器收到的响应报文首部的Cache-Control的值为此三者中任何一个,则启用压缩功能;
    1. gzip_types mime-type …;
      压缩过滤器,仅对此处设定的MIME类型的内容启用压缩功能;
示例:
gzip  on;
gzip_comp_level 6;
gzip_min_length 64;
gzip_proxied any;
gzip_types text/xml text/css  application/javascript;   

ngx_http_ssl_module模块

设置https连接的模块
1. ssl on | off;
是否开启ssl连接
2. ssl_certificate file;
当前虚拟主机使用PEM格式的证书文件;
3. ssl_certificate_key file;
当前虚拟主机上与其证书匹配的私钥文件;
4. ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
支持ssl协议版本,默认为后三个;
5. ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
builtin[:size]:使用OpenSSL内建的缓存,此缓存为每worker进程私有;
[shared:name:size]:在各worker之间使用一个共享的缓存;
6. ssl_session_timeout time;
客户端一侧的连接可以复用ssl session cache中缓存 的ssl参数的有效时长;

先自建一个CA,创建证书和私钥文件

(umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655 #然后填写相关信息
mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
touch /etc/pki/CA/{serial,index.txt}
echo 01 > /etc/pki/CA/serial
mkdir /usr/local/nginx/ssl
cd /usr/local/nginx/ssl
(umask 077; openssl genrsa -out /usr/local/nginx/ssl/ssl.key 2048)
openssl  req -new -key /usr/local/nginx/ssl/ssl.key  -out /usr/local/nginx/ssl/ssl.csr -days 365 ##填写相关信息。域名这里设置为www.ice.com.
openssl ca -in /usr/local/nginx/ssl/ssl.csr  -out /usr/local/nginx/ssl/ssl.crt

修改配置文件/usr/local/nginx/conf/nginx.conf

配置示例:server {listen       443 ssl;server_name  www.ice.com;root /var/www/html;ssl on; ssl_certificate /usr/local/nginx/ssl/ssl.crt;ssl_certificate_key /usr/local/nginx/ssl/ssl.key;ssl_session_cache shared:sslcache:20m;location / {index  index.html index.htm;}}

配置完成之后我们需要设置一下域名解析
在这个目录下C:\Windows\System32\drivers\etc
找到hosts文件并修改


保存退出

然后访问一下

因为ca是自建的所以说不安全,我们在浏览器导入ca的证书,就可以了 。
我们先吧虚拟机的ca文件复制到物理机

sz /etc/pki/CA/cacert.pem  ##这个命令需要安装 lrzsz 安装方法 yum install lrzsz -y

导入证书

然后再次访问

这里显示安全链接了

ngx_http_rewrite_module模块

常用的几个指令
1、rewrite regex replacement [flag]
将用户请求的URI基于regex所描述的模式进行检查,匹配到时将其替换为replacement指定的新的URI;
注意:如果在同一级配置块中存在多个rewrite规则,那么会自下而下逐个检查;被某条件规则替换完成后,会重新一轮的替换检查,因此,隐含有循环机制;[flag]所表示的标志位用于控制此循环机制;

[flag]:

  • last:如果规则有很多条。这里重写完成一次之后就会重新开始匹配规则,直至最后一条。也就是说。如果规则写的不好很容易造成死循环,不停的重写规则。
  • break:重写完成之后不再从头再次匹配规则。直接跳出循环
  • redirect:重写完成后以临时重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;不能以http://或https://开头;
  • permanent:重写完成后以永久重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;

示例比如我们要将http请求重定向到https请求。我们可以在http的server里面这样写里面这样写

 rewrite (.*)$ https://www.ice.com$1 break;

具体可以看官方文档
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return

ngx_http_referer_module模块

可以基于这个模块做防盗链。Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:

Referer=http://www.google.com

valid_referers none | blocked | server_names | string …;
定义referer首部的合法可用值;

  • none:请求报文首部没有referer首部;
  • blocked:请求报文的referer首部没有值;
  • server_names:参数,其可以有值作为主机名或主机名模式;
  • arbitrary_string:直接字符串,但可使用*作通配符;
  • regular expression:被指定的正则表达式模式匹配到的字符串;要使用~打头,例如 ~.*.ice.com;

配置示例:

valid_referers none block server_names *.ice.com ; #3设置有效的referersif($invalid_referer) {return 403; ##如果referer是不再我们定义的valid_referers列表中,则返回一个403拒绝访问}

ngx_http_headers_module模块

向由代理服务器响应给客户端的响应报文添加自定义首部,或修改指定首部的值;

1、add_header name value [always];

            添加自定义首部;add_header X-Via  $server_addr;add_header X-Accel $server_name;

2、expires [modified] time;

            expires epoch | max | off;用于定义Expire或Cache-Control首部的值;

测试:在location中加上add_header Test test; 在响应头部增加一个Test首部。内容是test。然后重启nginx,访问测试一下

Nginx常用的模块相关推荐

  1. 手把手教你Nginx常用模块详解之ngx_http_rewrite_module(十)

    本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递. Nginx专栏 手把手教你Nginx常用模块详解之ngx_http_ac ...

  2. 手把手教你Nginx常用模块详解之ngx_http_status_module(十一)

    本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递. Nginx专栏 手把手教你Nginx常用模块详解之ngx_http_ac ...

  3. Nginx源码研究之nginx限流模块详解

    这篇文章主要介绍了Nginx源码研究之nginx限流模块详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 高并发系统有三把利器:缓存.降级和限流: 限流的目的是通过对并 ...

  4. Mac系统安装nginx+rtmp模块

    1.安装命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) ...

  5. 大神教你Nginx常用基础配置方案

    Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params.fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILE ...

  6. Nginx常用使用解读及配置

    概述 什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse ...

  7. nginx post请求超时_nginx的重试机制以及nginx常用的超时配置说明

    nginx的重试机制 现在对外服务的网站,很少只使用一个服务节点,而是部署多台服务器,上层通过一定机制保证容错和负载均衡. nginx就是常用的一种HTTP和反向代理服务器,支持容错和负载均衡. ng ...

  8. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡

    一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器 ...

  9. centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等

    centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...

  10. Nginx 常用配置汇总,从入门到干活足矣

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 众所周知,Nginx 是 Apache服务不错的替代品.其特点是占有内存少,并发能力强,事实上 Ngin ...

最新文章

  1. 新海诚没有参与制作的作品_下列哪部作品新海诚没有参与制作
  2. ftp 主动或者被动ftp
  3. 正则匹配class并替换整个class为空
  4. boost::mp11::mp_plus相关用法的测试程序
  5. this的用法this.name=name 这个什么意思
  6. qtcreator下拉列表怎么制作_设置EXCEL动态下拉菜单,只需要一个组合键,新手也能快速掌握...
  7. __super作用(C++中)
  8. Webrtc服务器搭建转
  9. [iOS开发]iOS调用系统相册相机
  10. 解决阿里巴巴JSONObject工具 com.alibaba.fastjson.JSONObject cannot be cast to 的问题
  11. 6-3 写字母(*) (10分)
  12. 大数据_01【介绍】
  13. linux tar xzmf,有人吗??IT大神求助
  14. not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
  15. python面试题解析(前端、框架和其他)
  16. python爬虫——爬取马蜂窝景点翻页文字评论
  17. bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士
  18. 数学模型算法实现之排队论
  19. linux mysql 误删系统文件恢复_干货分享丨如何恢复Linux下误删/etc目录数据
  20. .NET开源工作流RoadFlow-表单设计-隐藏域

热门文章

  1. Css3中align-content,css align-content属性怎么用
  2. 企业OA系统在低代码平台中要如何开发?
  3. QPS、TPS、并发用户数、吞吐量
  4. 在CentOS7上安装Mysql,无法启动提示错误:Failed to initialize DD Storage Engine
  5. 保研经历-清华计算机、北大、中科院计算所
  6. python bmp转jpg_python将bmp转换为jpg格式并删除原图的具体操作
  7. reflections歌词翻译_英文歌曲reflection的歌词翻译
  8. 嵌入式学习——使用STM32F103基于HAL库移植uCOS-III
  9. 调用阿里云身份证识别服务识别本地图片,很详细,附工具类
  10. SEO站内优化教程-SEO站内优化方法教程