• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

Nginx-模块和第三方模块

一、Nginx自生模块

CoreModule

限速
指令名称: limit_rate、limit_rate_after
使用环境: http, server, location, if in location
示例:
location /download {
limit_rate_after 4m;
limit_rate 512k;
}

限制单个IP最大连接数(线程数)
指令名称: limit_conn_zone
使用环境: http
示例:
http {
limit_conn_zone $binary_remote_addr zone=client_addr:10m;
}
   
指令名称: limit_conn
使用环境: http, server, location
示例:
server {
location /download {
limit_conn client_addr 1;
}
}

隐藏Nginx版本信息:
# curl –head http://www.tianyun.com //查看主机的响应头信息
http{
server_tokens off;
}

nginx访问控制allow、deny
1、安装模块
这个模块内置在了nginx中,除非你安装中使用了-–without-http_access_module

2、指令
allow
语法:     allow address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except
允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.

deny
语法:     deny address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except
禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.

3. allow、deny实例
location / {
deny  192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny  all;
}
从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,
接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问.

nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的
功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大.

在安装模块方面,nginx显得没有apache安装模块方便,当然也没有php安装扩展方便.在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来看看如何安装nginx第三方模块。

 

二、Nginx的第三方模块

nginx第三方模块安装方法:
./configure –prefix=原安装目录  –add-module=/第三方模块目录

以安装pagespeed模块实例
在未安装nginx的情况下安装nginx第三方模块
# ./configure –prefix=/usr/local/nginx-1.4.1 \
–with-http_stub_status_module \
–with-http_ssl_module \
–with-http_realip_module \
–with-http_image_filter_module \
–add-module=../ngx_pagespeed-master –add-module=/第三方模块目录
# make
# make isntall
# /usr/local/nginx-1.4.1/sbin/nginx

在已安装nginx情况下安装nginx模块
# ./configure –prefix=/usr/local/nginx-1.4.1 \
 –with-http_stub_status_module \
 –with-http_ssl_module –with-http_realip_module \
 –with-http_image_filter_module \
 –add-module=../ngx_pagespeed-master
# make
# /usr/local/nginx-1.4.1/sbin/nginx -s stop
# cp objs/nginx /usr/local/nginx/sbin/nginx
# /usr/local/nginx-1.4.1/sbin/nginx
相比之下仅仅多了一步覆盖nginx文件.

总结,安装nginx安装第三方模块实际上是使用–add-module重新安装一次nginx,不要make
install而是直接把编译目录下objs/nginx文件直接覆盖老的nginx文件.如果你需要安装多个nginx第三方模块,你只需要多指定几个相应的–add-module即可.

备注:重新编译的时候,记得一定要把以前编译过的模块一同加到configure参数里面.
nginx提供了非常多的nginx第三方模块提供安装,地址http://wiki.nginx.org/3rdPartyModules
1. 安装
首先安装nginx动态upstream配置模块,如果你已经安装了nginx,那么轻参考ttlsa上的如何安装nginx第三方模块,会安装的请跳过.

1
2
3
4
5
6
7
8
9
10
11
# cd /usr/local/src/
# wget https://github.com/yzprofile/ngx_http_dyups_module/archive/master.zip \
-O  ngx_http_dyups_module-master.zip
# unzip ngx_http_dyups_module-master.zip
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# tar -xzvf nginx-1.4.2.tar.gz
# cd nginx-1.4.2
# ./configure --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module
\--add-module=../ngx_http_dyups_module-master/
# make
# make install

 

Nginx-模块和第三方模块

Pingbacks已打开。

引用地址

暂无评论

发表评论