nginx 常用模块
- 1.模块 ngx_http_access_module 指定网段访问功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 2.模块 ngx_http_auth_basic_module 页面认证功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 3.模块 ngx_http_autoindex_module 列表目录
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 4.模块 ngx_http_charset_module 修改字符集功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 5.模块 ngx_http_stub_status_module 状态检查功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 6. 模块Core functionality 核心功能模块(日志功能模块)
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 7.模块 ngx_http_core_module location匹配功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 8.模块 ngx_http_rewrite_module 跳转功能
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 9.模块 ngx_http_fastcgi_module
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 10.模块 ngx_http_limit_conn_module
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 11.模块 ngx_http_proxy_module
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
- 12.模块 ngx_http_referer_module
- 01.功能介绍
- 02.指令
- 03.示例配置
- 04.应用场景
1.模块 ngx_http_access_module 指定网段访问功能
01.功能介绍
该模块允许限制对某些客户地址的访问,在扩展文件虚拟主机/etc/nginx/conf.d/*.conf
02.指令
语法: allow address | CIDR | unix: | all;
默认: —
上下文: http,server,location,limit_except
语法: address 允许访问指定的网络或地址,CIDR 如果指定了特殊值, nuix访问机制all所有,这里一般使用IP地址
默认:默认不需要配置
上下文:一般这个功能在http,或者server,或者location,或者limit_execpt这几个区域写,但是用的最多的是location区域
03.示例配置
deny --- 禁止
allow --- 允许
location / {deny 192.168.1.1; 禁止访问的网段allow 192.168.1.0/24; 运行访问的网段allow 10.1.1.0/16;allow 2001:0db8::/32;deny all;
}
04.应用场景
2.模块 ngx_http_auth_basic_module 页面认证功能
01.功能介绍
http页面认证功能,该模块允许使用"HTTP 基本身份验证"协议验证用户名和密码来限制对资源的访问,当输入域名之后,需要输入用户名和密码才能进入网站
02.指令
语法: auth_basic string | off;
违约: auth_basic off;
上下文: http,server,location,limit_except
使用"HTTP 基本身份验证"协议验证用户名和密码。指定参数用作。
语法: auth_basic_user_file file;
违约: —
上下文: http,server,location,limit_except
指定以以下格式保留用户名和密码的文件:
# comment
name1:password1
name2:password2:comment
name3:password3
名称可以包含变量。file
03.示例配置
location / {auth_basic "closed site"; ---开启认证功能auth_basic_user_file conf/htpasswd; ---加载用户密码文件
}
04.应用场景
第一个历程(编写配置文件):
下面的这也是一种创建密码的方式
3.模块 ngx_http_autoindex_module 列表目录
01.功能介绍
搭建共享目录功能,实现类似于阿里云下载经镜像的目录,生成目录列表。
02.指令
主要用法就是这个配置
语法: autoindex on | off;
默认配置: autoindex off;
上下文: http,server,location
启用或禁用目录列表输出。
语法: autoindex_exact_size on | off;
默认配置: autoindex_exact_size on;
上下文: http,server,location
对于 HTML格式,指定是应在目录列表中输出确切的文件大小
03.示例配置
location / {autoindex on; ---开启索引功能
}
04.应用场景
4.模块 ngx_http_charset_module 修改字符集功能
01.功能介绍
修改页面中文乱码字符集
02.指令
语法: charset charset | off;
默认配置: charset off;
上下文: http,server,locationif in location
03.示例配置
location / {charset $charset; $charset一般写的是utf-8
}
04.应用场景
别名功能
5.模块 ngx_http_stub_status_module 状态检查功能
01.功能介绍
对网站进程监控,比如监控网站的并发量,防止大用户访问,造成网站宕机等功能
02.指令
语法: stub_status;
默认配置: — 不用配置
上下文: server,location
03.示例配置
location = /basic_status {stub_status;
}
04.应用场景
由于配置stub_status检查页面时,必须要在www.oldboy.com/basic_status,每次运维人员访问检查页面时,要在域名后面添加URI的信息,比较麻烦,所以单独写一个*.conf的文件
6. 模块Core functionality 核心功能模块(日志功能模块)
01.功能介绍
日志的存放,收集,分割,查看等工
日志:在/etc/nginx/nginx.conf 中设置access日志和error日志
[root@web01 /etc/nginx]# cat nginx.conf
user www;
worker_processes 2;
error_log /var/log/nginx/error.log warn; ---错误日志位置以及错误级别
pid /var/run/nginx.pid;
events {worker_connections 2048;
}
http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';--- 定义日志内容格式access_log /var/log/nginx/access.log main; ---调用日志格式sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;include /etc/nginx/conf.d/*.conf;}
[root@web01 /etc/nginx/conf.d]# ll
-rw-r--r-- 1 root root 278 Feb 20 10:55 blog.conf
-rw-r--r-- 1 root root 169 Feb 16 21:04 default.conf.gz
-rw-r--r-- 1 root root 94 Feb 18 13:16 state.conf.gz
-rw-r--r-- 1 root root 194 May 15 12:42 www.conf
---由于conf.d目录下有很多网站,比如www blog bbs 等,所以这些网站都有访问日志,如果都放在一起会混乱,所以也可以单独设置每个网站的日志
比如:
[root@web01 /etc/nginx/conf.d]# cat www.conf
server {listen 80;server_name www.oldboy.com;access_log /var/log/nginx/www_access.log main; ---假如访问www网站,这里单独设置一个www_acccess的日志文件location / {root /usr/share/nginx/html;index index.html;}
}[root@web01 /var/log/nginx]# ll
-rw-r----- 1 nginx adm 0 Feb 23 09:33 blog_access.log
-rw-r----- 1 www adm 8089 Jul 18 08:37 www_access.log
---这个总的日志目录下,就会把不同的网站日志分开,便于以后查看
02.指令
正确日志:
句法: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
默认: access_log 日志/access.log 合并;
语境: http, server, location, if in location,limit_except
错误日志;
句法: error_log file [level];
默认: error_log 日志/error.log 错误;
语境: main, http, mail, stream, server,location
03.示例配置
正确日志:
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;
错误日志:
04.应用场景
正确日志:
错误日志:
错误级别选择的越低,错误日志信息里面显示的错误信息越多
总的日志目录:
7.模块 ngx_http_core_module location匹配功能
01.功能介绍
location进行匹配,用户输入的网站/后面文件后缀,根据匹配站点目录下URI 信息进行显示不同的结果
02.指令
句法: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
默认: —
语境: server, location
03.示例配置
location /oldboy { ---假如当访问www.oldboy.com/oldboy/meinv.jpg图片时,目录里面有这个图片,则正常显示,如果没有就会报404的错误root / html / www ;error_page 404 * /oldboy.jpg ;---当报404错误的时候,自动显示/oldboy.jpg的优雅显示错误的图片 也可也把/oldboy.jpg这个地方放置别的首页页面,进行强制超链接跳转
}
---当站点目录/html/www里面有这些目录和文件
drwx r-xr-x 2root root23 May 23 11:42 oldboy---当匹配www.oldboy.com/oldboy/meinv.jpg时,里面有正常显示
- rw-r--r-- 1 root root 11979 May 23 11:44 oldboy.jpg ---没有报404显示这个图片
04.应用场景
Location的作用就是匹配,匹配到相应的目录 ,然后做相应的操作,相应的处理
8.模块 ngx_http_rewrite_module 跳转功能
01.功能介绍
输入baidu.com会跳转到www.baidu.com,实现跳转功能
02.指令
句法: rewrite regex replacement [flag];
默认: —
语境: server, location,if
03.示例配置
在server区域和location区域都可以显示
server {
server_name oldboy.com;
rewrite ^/(.*) http://www.oldboy.com/$1 permanent ;
}
04.应用场景
…未完