默认官方模块

1.1、Gzip压缩

压缩文件,使文件变小,传输更快了。目前市场上大部分浏览器是支持GZIP的。IE6以下支持不好,会出现乱码情况。

官方文档http://nginx.org/en/docs/http/ngx_http_gzip_module.html

示例语法:

#配置到http段里,使整个http服务都启用gzip压缩
#开启gzip压缩
gzip on;
#http协议版本
gzip_http_version 1.0;
#IE浏览器不开启gzip  IE6以下会乱码
gzip_disable 'MSIE [1-6].';
#开启gzip 文件的格式
gzip_types image/jpeg image/jpg image/png text/plain text/css;

验证文件是否开启gzip

nginx使用-2(模块和日志)-LMLPHP

1.2、客户端缓存

B/S架构里 browser浏览器 就是客户端

告知浏览器获取的信息是在某个区间时间段是有效的。

官方文档:http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires

示例语法:

location ~ \.(js|css)$ {
    #单位参数 d day 天|H hour 小时  M 分
    expires 1h;
}

#在整个http中生效  配置到http段里
expires 1h

1.3、基于IP的访问控制

基于ngx_http_access_module模块,默认可使用

官方文档:http://nginx.org/en/docs/http/ngx_http_access_module.html

1.4、基于用户的访问控制

基于ngx_http_auth_basic_module模块,默认可用

官方文档:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

配置实现:
①创建用户名和密码存储文件

[root@server01 ~] # cd /usr/local/nginx/conf
#htpasswd 如果不存在就通过  yum -y install httpd-tools安装
#生成用户名称和密码
[root@server01 ~] # htpasswd -c ./passwd.db lnmp
#输入密码并再次确认密码
#查看passwd.db文件是否创建成功

②在配置文件中进行配置

[root@server01 ~] # vim /usr/local/nginx/conf/nginx.conf

配置文件内容

#根据业务需求,配置到server段里
#登录框显示的标题提示
auth_basic "test login"
#加载用户名称和密码校验文件
auth_basic_user_file  /usr/local/nginx/conf/passwd.db;

③测试查看

1.5、目录列表显示

显示文件列表,或者需要做一个下载列表

官方文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex

示例语法:

#开启目录列表显示
autoindex on;
#index  当index默认找不到时,才会使用目录列表
index index;

1.6、反向代理

正向代理

nginx使用-2(模块和日志)-LMLPHP

特点:知道自己使用了代理,需要填写代理服务器的IP等相关连接信息

反向代理

nginx使用-2(模块和日志)-LMLPHP

特点:用户是无感知的,不知道使用了代理服务器。反向代理服务器是和真实访问的服务器是在一起的,有关联的。

作用:可以根据实际业务需求,分发代理页面到不同的解释器

​ 可以隐藏真实服务器的路径

官方文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html

①配置反向代理

LNMPA

nginx使用-2(模块和日志)-LMLPHP

①安装httpd 需改端口8080

#安装apache
[root@server01 ~] # yum install -y httpd
#配置apache的配置文件
[root@server01 ~] # vim /etc/httpd/conf/httpd.conf

修改配置项

listen 8080

②配置nginx的server并进行转发

location / {
    proxy_pass http://127.0.0.1:8080;
}

日志管理

1、访问日志

官方文档:http://nginx.org/en/docs/http/ngx_http_log_module.html

①查看access.log

[root@server01 ~] # cd /usr/local/nginx/logs
[root@server01 ~] # cat access.log

access.log日志文件内容示例

127.0.0.1 - - [06/Oct/2017:11:46:16 +0800] "GET /phpinfo.php HTTP/1.1" 200 25206 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36"

②查看配置解析参数说明

[root@server01 ~] # vim nginx.conf

查看访问日志相关参数

#定义日志格式  格式命名    详细格式参数
#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  logs/access.log  main;

访问日志,可以统计分析用户的流量的相关情况。客情分析

2、错误日志

记录一些启动和运行过程中的错误信息

# 定义开启错误日志    日志位置    日志级别
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

官方文档:http://nginx.org/en/docs/ngx_core_module.html#error_log

[root@server01 ~] # cat /usr/local/nginx/logs/error.log

格式示例:

2019/06/06 11:42:43 [error] 25356#0: *38 open() "/usr/local/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.17.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.17.220", referrer: "http://192.168.17.220/index.php"

3、基于域名日志分割

①开启日志的定义规则

#定义日志格式  定义http里
log_format  mylogs  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

②重启nginx测试查看

#访问日志的存储路径配置        调用的日志格式
#在server段里面配置  也就是在当前server里的访问日志,会被写入定义的这里
access_log  logs/shop.lnmp.com_access.log  mylogs;

日志切割的方式有很多种:

①基于域名分开存储

②日志轮转 时间段

③自定义脚本 定时检测大小 根据文件大小进行切割

03-13 21:20