1.安装此模块需要先安装sregex运行库

apt-get update;
apt-get install git make gcc -y  
#Centos改成yum
git clone https://github.com/agentzh/sregex
cd sregex
make
make install
cd ..
git clone https://github.com/agentzh/replace-filter-nginx-module
wget http://nginx.org/download/nginx-1.2.6.tar.gz
tar zxvf nginx-1.2.6.tar.gz
cd nginx-1.2.6
./configure --add-module=../replace-filter-nginx-module  #自行加其他编译参数
make
make install
nginx.conf的用法举例:


location /t {
    default_type text/html;
    echo abc;
    replace_filter 'ab|abc' X;
}

location / {
    # proxy_pass/fastcgi_pass/...

    # caseless global substitution:
    replace_filter '\d+' 'blah blah' 'ig';
    replace_filter_types text/plain text/css;
}

cobbler服务

systemctl start cobblerd
#开启服务
systemctl enable cobblerd
#开机自启动

ngx_http_core_module

配置格式:

http {
    ... ...
    server {
        ...
        server_name
        root
        location [OPERATOR] /uri/ {
        ...
        }
    }
    server {
        ...
    }
}

常见配置指令:

与套接字相关的配置:
1、server { ... }
虚拟主机配置字段
安全上下文:http
示例:
    server {
        listen address[:PORT]|PORT;
        server_name SERVER_NAME;
        root /PATH/TO/DOCUMENT_ROOT;                            
    }
2、listen address[:port] [default_server] [ssl] [http2|spdy]  [backlog=number] [rcvbuf=size] [sndbuf=size];
指定监听的地址和端口等,常用选项:
    default_server:设定为默认虚拟主机
    ssl:限制仅能够通过ssl连接提供服务
    backlog=number:后援队列长度
    rcvbuf=size:接收缓冲区大小
    sndbuf=size:发送缓冲区大小
安全上下文:server
示例:
    # 监听指定的IP及端口
    listen 192.168.4.119:80;
    # 监听指定端口只能通过SSL
    listen 443 ssl;
3、server_name name ...;
指明虚拟主机的主机名称,后可跟多个由空白字符分隔的主机名称;
安全上下文:server
示例:
    # 支持*通配任意长度的任意字符
    server_name *.test.com www.test.*;
    # 支持~起始的字符做正则表达式模式匹配
    server_name ~^www\d+\.test\.com$
4、tcp_nodelay on | off;
在keepalived模式下的连接是否启用tcp_nodelay选项
安全上下文:http,server,location
5、tcp_nopush on|off;
在sendfile模式下,是否启用选项
安全上下文:http,server,location    
6、sendfile on | off;
是否启用sendfile功能
安全上下文:http,server,location,if in location
定义路径相关的配置:
7、root path; 
设置web资源路径映射,用于指明用户请求的url所对应的本地文件系统上的文档所在目录路径
安全上下文:http,server,location,if in location
8、location [ = | ~ | ~* | ^~ ] uri { ... }
设置请求的uri对应的资源。在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的uri来检查定义的所有location,并找出一个最佳匹配,而后应用其配置。其中:
    =:对uri做精确匹配
    ^~:对uri的左半部分做匹配检查,不区分字符大小写
    ~:对uri做正则表达式模式匹配,区分字符大小写
    ~*:对uri做正则表达式模式匹配,不区分字符大小写
    不带符号:匹配起始于此uri的所有的url
    @:定义位置名称,实现资源跳转
匹配优先级:=, ^~, ~/~*,不带符号;
安全上下文:server,location
示例:
server {
    listen 192.168.4.119:80;
    server_name www.test.com;
    root /data/web;    #设置虚拟主机的web根目录
    # = 精确匹配/data/web/test目录下的test.html文件
    location = /test.html {
        root /data/web/test;  #指定location的web根目录
    }
    # ~ 正则匹配/data/web/aaa目录下带有AAA字符串的文件(区分大小写)
    location ~ .*AAA.* {
        root /data/web/aaa;
    }
    # ~* 正则匹配/data/web/bbb目录下带有bbb字符串的文件(不区分大小写)
    location ~* .*bbb.* {
        root /data/web/bbb;
    }
    # ^~ 匹配/data/web/www目录下的文件
    location ^~ /www {
        root /data/web/www
    }
}
9、alias path;
定义路径别名,文档映射的另一种机制
安全上下文:location
注意:root指令和alias指令的意义不同,并且不能同时用在同一个location中。
    (1) root,给定的路径对应于location中的/uri/左侧的/
    (2) alias,给定的路径对应于location中的/uri/右侧的/
10、error_page code ... [=[response]] uri;
指定错误的uri路径
安全上下文:http,server,location,if in location
示例:
    #当网页的状态码为404时,跳转到指定的404.html页面
    error_page 404    /404.html;
11、try_files file ... uri;
如果指定路径下文件不存在,则跳转到指定的uri或者返回指定状态码。
安全上下文:server,location
示例:
location ~ .*test.* {
        try_files test.html /404.html;
}
#尝试打开test.html,如果没有此文件,则返回状态码500
location = /test.html {
        try_files test.html =500;
}
定义客户端请求的相关配置
12、keepalive_timeout timeout [header_timeout];
设定保持连接的超时时长,0表示禁止长连接;默认为75s
安全上下文:http,server,location
13、keepalive_requests number;
在一次长连接上所允许请求的资源的最大数量,默认为100
安全上下文:http,server,location
14、keepalive_disable none | browser ...;
对哪种浏览器禁用长连接
安全上下文:http,server,location
15、send_timeout time;
向客户端发送响应报文的超时时长,此处指两次连续写操作之间的间隔时长
安全上下文:http,server,location
16、client_body_buffer_size size;
用于接收客户端请求报文的body部分的缓冲区大小,默认为16k;超出此大小时,其将被暂存到磁盘上的由client_body_temp_path指令所定义的位置
安全上下文:http,server,location
17、client_body_temp_path path [level1 [level2 [level3]]];
设定用于存储客户端请求报文的body部分的临时存储路径及子目录结构和数量,其中level表示存储目录的数量,用16进制表示
安全上下文:http,server,location
示例:
    client_body_temp_path /var/tmp/client_body  2 1 1
        2:表示用2位16进制数字表示一级子目录:00-ff,共256个一级子目录
        1:表示用1位16进制数字表示二级子目录;0-f,共16个二级子目录
        1:表示用1位16进数制字表示三级子目录:0-f,共16个二级子目录
对客户端进行限制的相关配置:
18、limit_rate rate;
限制响应给客户端的传输速率,单位是bytes/second,0表示无限制
安全上下文:http,server,location,if in location
19、limit_except method ... { ... }
限制客户端除指定的请求方法之外不能访问服务器
安全上下文:location
示例:
    # 限制192.168.4.0/24的客户端只能通过GET请求
    limit_except GET {
        allow 192.168.4.0/24;
        deny  all;
    }
文件操作优化的配置
20、aio on|off | threads[=pool];
是否启用aio功能
安全上下文:http,server,location
21、directio size | off;
当文件大于等于给定的大小时启用O_DIRECT标记,例如directio 4m;
安全上下文:http,server,location
22、open_file_cache off; 或 open_file_cache max=N [inactive=time];
    nginx可以缓存以下三种信息:
        (1) 文件的描述符、文件大小和最近一次的修改时间
        (2) 打开的目录结构
        (3) 没有找到的或者没有权限访问的文件的相关信息
    max=N:可缓存的缓存项上限;达到上限后会使用LRU算法实现缓存管理
    inactive=time:缓存项的非活动时长,在指定的时长内未被命中的或命中的次数少于open_file_cache_min_uses所指定的次数的缓存项即为非活动项
安全上下文:http,server,location
23、open_file_cache_valid time;
缓存项有效性的检查频率;默认为60s;
安全上下文:http,server,location
24、open_file_cache_min_uses number;
在open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次方可被归类为活动项,默认为1
安全上下文:http,server,location
25、open_file_cache_errors on | off;
是否缓存查找时发生错误的文件一类的信息,默认为off
安全上下文:http,server,location

安装

cobbler包光盘里是没有的,要配置epel源,这里就说怎么配置epel源了,在yum.repos.d/目录下照葫芦画瓢就可,配置好后执行如下命令安装

yum install –y cobbler
#
#

 

安装成功后,我们发现它还安装了其他的服务

图片 1

备注:我们搭建cobbler-系统部署需要用到httpd、tftp-server、dhcp服务,从图上可以看出它没有安装dhcp服务,所以我们要安装下dhcp服务

yum install –y dhcp
#
#

ngx_http_access_module

allow|deny address|CIDR|unix:|all;
允许或拒绝访问的Ip网段,匹配顺序为从上往下匹配。
安全上下文: http,server,location,limit_except
示例:
    location / {
        deny  192.168.4.1;
        allow 192.168.4.0/24;
        deny  all;
    }

问题一:出现如下提示:**

图片 2

解决方案:http:改为https:访问

 

ngx_http_auth_basic_module

此模块用于实现基于用户的访问控制功能。

1、auth_basic string|off
配置auth_basic提示的信息
安全上下文:http,server,location,limit_except
2、auth_basic_user_file file;
指定保存用户账户密码的file文件,该文件由htpasswd生成
安全上下文:http,server,location,limit_except
示例:
    #生成保存认证用户信息的文件
    [root@nginx ~]# htpasswd -c /etc/nginx/nginxpasswd test1
    New password: 
    Re-type new password: 
    Adding password for user test1
    [root@nginx ~]# htpasswd /etc/nginx/nginxpasswd test2
    New password: 
    Re-type new password: 
    Adding password for user test2

    #添加nginxbasic认证配置
    location ^~ /auth {
        auth_basic "nginx auth_basic";
        auth_basic_user_file /etc/nginx/nginxpasswd;
    }

步骤五

配置dhcp

①编辑配置文件

vim /etc/cobbler/settings
#

图片 3


改cobbler提供的dhcp配置文件模板

vim /etc/cobbler/dhcp.template
#

图片 4

我们先来看下dhcp配置文件

图片 5

还是空的没有配置信息

 

②同步

systemctl restart cobblerd
#重启服务
cobbler sync
#数据同步

再来看dhcp配置文件

图片 6

有信息了

 

ngx_http_index_module

此模块用于实现基于IP的访问控制功能。

index file...;
定义默认的web网页资源,默认为index index.html
安全上下文:http,server,location
示例:
    location / {
        index index.html;
    }

cobbler环境检查

执行

cobbler check
#

会出现如下提示,配置缺少的东西

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
4 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
5 : enable and start rsyncd.service with systemctl
6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

OK
根据提示一步一步来解决

 

ngx_http_gzip_module

此模块能够使用gzip压缩响应报文的大小,通过能够将需要传输的数据减少一半或者更多

1、gzip on|off;
是否开启压缩响应
安全上下文:http,server,location,if in location
2、gzip_comp_level level;
设置压缩响应的等级,从1到9,默认为1
安全上下文:http,server,location
3、gzip_disable regex ...;
根据正则表达式匹配浏览器类型来关闭响应压缩
安全上下文:http,server,location
4、gzip_min_length length;
指定被压缩的响应报文的最小长度,默认为20个字节
安全上下文:http,server,location
5、gzip_buffers number size;
设置压缩响应报文时的缓冲区数量及每个缓冲区大小
安全上下文:http,server,location
6、gzip_proxied off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any ...;
nginx作为代理服务器接收到从被代理服务器发送的响应报文后,在何种条件下启用压缩功能,默认为off
释义:
off:对代理的请求不启用;
no-cache,no-store,private:表示从被代理服务器收到的响应报文首部的Cache-Control的值为此三者中任何一个,则启用压缩功能
安全上下文:http,server,location
7、gzip_types mime-type ...;
压缩过滤器,仅对此处设定的MIME类型的内容启用压缩功能,默认压缩text/html
安全上下文:http,server,location
示例:
    gzip on;
    gzip_comp_level 6;
    gzip_min_length 64;
    gzip_proxied any;
    gzip_types text/xml text/css  application/javascript;

开启服务

Core functionality

主配置文件/etc/nginx/nginx.conf格式:

main block
event {
    ...
}        
http {
    ...
    server {
        ...
    }
    server {
        ...
        listen
        server_name
        root
        location /uri/ {
            ...
            if CONDITION {
                ...
            }
        }
    }
}

其中 main block 配置段常见的配置指令:

分类:
    正常运行必备的配置
    优化性能相关的配置
    用于调试及定位问题相关的配置
    事件驱动相关的配置
正常运行必备的配置:
1、user USERNAME [GROUP];
    指定worker processes所属用户及用户组
2、pid /PATH/TO/PID_FILE;
    指定存储nginx主进程进程号码的文件路径
3、include file | mask;
    指明包含进来的其它配置文件片断
4、load_module file;
    指明要装载的动态模块
性能优化相关的配置:
1、worker_processes number | auto;
    worker进程的数量:通常应该等于小于当前主机的cpu的物理核心数
    auto:当前主机物理CPU核心数
2、worker_cpu_affinity cpumask ...; 或 worker_cpu_affinity auto [cpumask];
    绑定CPU核心与worker进程,默认不绑定
    cpumask示例:8核
        00000001:0号CPU
        00000010:1号CPU
3、worker_priority number;
    指定worker进程的nice值,设定worker进程优先级;[-20,20]
4、worker_rlimit_nofile number;
    worker进程所能够打开的文件数量上限
调试、定位问题:
1、daemon on|off;    
    是否以守护进程方式运行Nignx
2、master_process on|off;
    是否以master/worker模型运行nginx;默认为on
3、error_log file [level];
    定义错误日志记录级别
事件驱动相关的配置:
events {
    ...
}
1、worker_connections number;
    每个worker进程所能够打开的最大并发连接数数量
    启动nginx后最大并发连接数量: worker_processes * worker_connections
2、use method;
    指明并发连接请求的处理方法,不指定时nginx会自动选择最高效的处理方法
    use epoll;
3、accept_mutex on | off;
    处理新的连接请求的方法:on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程

cobbler-web管理

 

1、首先安装包

 

yum install -y cobbler-web
#

 

2、访问

 

https://192.168.43.7/cobbler\_web

默认账号:cobbler

默认密码:cobbler

图片 7

ngx_http_referer_module

valid_referers none|blocked|server_names|string ...;
定义referer首部的合法可用值
释义:
none:请求报文首部没有referer首部;
blocked:请求报文的referer首部没有值;
server_names:参数,其可以有值作为主机名或主机名模式;
    arbitrary_string:直接字符串,但可使用*作通配符
    regular_expression:被指定的正则表达式模式匹配到的字符串,要使用~开头,如 ~.*\.test\.com
安全上下文: server,location
示例:
    valid_referers none blocked server_names *.teest.com tesst.* ~\.test\.;
    if($invalid_referer) {
        return http://www.test.com/test.jpg;
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注