2019-01-07 nginx实现web站点实战

ngx_http_access_module

  • ngx_http_access_module模块
    实现基于ip的访问控制功能
    1、allow address | CIDR | unix: | all;
    2、deny address | CIDR | unix: | all;
    http,server,location,limit_expect
    自上而下检查,一旦匹配,将生效,条件严格的置前
    示例:
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

  • ngx_http_auth_basic_module模块
    实现基于用户的访问控制,使用basic机制进行用户认证
    1、auth_basic string | off;
    2、auth_basic_user_file file;
location /admin/ {
  auth_basic "Admin Area";
  auth_basic_user_file /etc/nginx/.ngxpasswd;
}

用户口令文件:
1、明文文本:格式name:password:comment
2、加密文本:由htppasswd命令实现
httpd-tools所提供
放在server那里就是整个网站都需要认证,放在location里面就是特定目录需要认证

ngx_http_stub_status_module

  • ngx_http_stub_status_module模块
    用于输出nginx的基本状态信息
    输出信息示例:
Active connections:291
server accepts handled requests
      16630948 16630948 31070465    ---3个数字分别对应accepts,handled,requests三个值
Reading: 6 Writing: 179 Waiting: 106

Active connections:当前状态,活动状态的连接数
accepts:统计总值,已经接受的客户端请求的总数
handled:统计总值,已经处理完成的客户端请求的总数
requests:统计总值,客户端发来的总的请求数
Reading:当前状态,正在读取客户端请求报文首部的连接的连接数
Writing:当前状态,正在向客户端发送响应报文过程中的连接数
Waiting:当前状态,正在等待客户端发出请求的空闲连接数
1、stub_status;
示例:

location /status {
  stub_status;
  allow 172.16.0.0/16;
  deny all;
}

ngx_http_log_module

  • ngx_http_log_module模块
    指定日志格式记录请求
    1、log_format name string ...;
    string可以使用nginx核心模块及其它模块内嵌的变量
    注意:log_format要在http那里定义
    2、access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=conditino]];
    access_log off;
    访问日志文件路径,格式及相关的缓冲的配置
    buffer=size
    flush=time
    示例:
log_format compression '$remote_addr-$remote_user [$time_local] '
      '"$request" $status $bytes_sent '
      '"$http_referer" "$http_user_agent" "$gzip_ratio"';

access_log /spool/logs/nginx-access.log compression buffer=32k;    ---buffer在测试环境不要用,因为要放进缓存等一段时间才能看到

3、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

  • ngx_http_gzip_module
    用gzip方法压缩响应数据,节约带宽
    1、gzip on | off;
    启用或禁用gzip压缩
    2、gzip_comp_level level;
    压缩比由低到高:1到9
    默认:1
    3、gzip_disable regex ...;
    匹配到客户端浏览器不执行压缩
    4、gzip_min_length length;
    启用压缩功能的响应报文大小阈值
    5、gzip_http_version 1.0 | 1.1;
    设定启用压缩功能时,协议的最小版本
    默认:1.1
    6、gzip_buffers number size;
    支持实现压缩功能时缓冲区数量及每个缓存区的大小
    默认:32 4k 或 16 8k
    7、gzip_types mime-type ...;
    指明仅对哪些类型的资源执行压缩操作;即压缩过滤器
    默认包含有text/html,不用显示指定,否则出错
    8、gzip_vary on | off;
    如果启用压缩,是否在响应报文首部插入“Vary:Accept-Encoding”
    9、gzip_proxied off | expired | on-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
    nginx充当代理服务器时,对于后端服务器的响应报文,在何种条件下启用压缩功能
    off:不启用压缩
    expired,no-cache,no-store,private:对后端服务器的响应报文首部Cache-Control值任何一个,启用压缩功能
    示例:
gzip on;
gzip_comp_level 6;
gzip_min_length 64;
gzip_proxied any;
gzip_types text/xml text/css application/javascript;
curl -I compressed http://www.a.com    ---不加compressed默认不压缩,压缩了的话有提示gzip

ngx_http_ssl_module

ngx_http_ssl_module模块:
1、ssl on | off;
为指定虚拟机启用HTTPS protocol,建议用listen指令代替
2、ssl_certificate file;
当前虚拟主机使用PEM格式的证书文件
3、ssl_certificate_key file;
当前虚拟主机上与其证书匹配的私钥文件
4、ssl_protocols [SSLv2] [SSLv3] [TLSv1.1] [TLSv1.2];支持ssl协议版本,默认为后三个
5、ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
none:通知客户端支持ssl session cache,但实际不支持
builtin[:size]:使用OpenSSL内建缓存,为每worker进程私有
[shared:name:size]:在各worker之间使用一个共享的缓存

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 1,867评论 0 3
  • I/O模型: 阻塞型、非阻塞型、复用型、信号驱动型、异步 同步/异步:关注消息通知机制 消息通知:同步:等待对方返...
    Net夜风阅读 2,007评论 0 1
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 2,003评论 0 9
  • I/O模型Nginx介绍Nginx的安装和目录结构Nginx的配置Nginx的编译安装 一、I/O模型 (一)I/...
    哈喽别样阅读 893评论 0 4
  • 基于IP地址的访问控制模块 ngx_http_access_module模块可以限制某些客户端IP地址的访问,针对...
    geekdeedy阅读 572评论 0 0