默认官方模块

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

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

语法:

deny ip 禁止ip访问

allow ip 允许访问

1.4、基于用户的访问控制

基于ngx_http_auth_basic_module模块,默认可用

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

语法:

auth_basic "提示信息"

auth_basic_user_file /etc/nginx/htpasswd;

配置实现:

①创建用户名和密码存储文件

[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;

注意:如果目录中没有配置的默认index访问项,而autoindex又没有开启,不能够查看访问目录列表,就会报出403错误。

1.6、反向代理

正向代理

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

​ 常见于代理客户端上网等操作。

反向代理

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

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

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

常见于代理后端服务器

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

①配置反向代理

LNMPA

验证例子:

①安装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;
}

日志管理

日志类型:

①access.log 访问日志 查看统计用户的访问信息 流量

②error.log 错误日志 错误信息 重写信息

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;
参数 意义
$remote_addr 客户端的ip地址(代理服务器,显示代理服务ip)
$remote_user 用于记录远程客户端的用户名称(一般为“-”)
$time_local 用于记录访问时间和时区
$request 用于记录请求的url以及请求方法
$status 响应状态码,例如:200成功、404页面找不到等。
$body_bytes_sent 给客户端发送的文件主体内容字节数
$http_user_agent 用户所使用的代理(一般为浏览器)
$http_x_forwarded_for 可以记录客户端IP,通过代理服务器来记录客户端的ip地址
$http_referer 可以记录用户是从哪个链接访问过来的

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

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;

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

①基于域名分开存储

②日志轮转 时间段

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

nginx使用-2(模块和日志)的更多相关文章

  1. Nginx的继续深入(日志轮询切割,重写,负载均衡等)

    Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...

  2. Nginx内置变量以及日志格式变量参数详解

    $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为 ...

  3. nginx利用limit模块设置IP并发防CC攻击

    nginx利用limit模块设置IP并发防CC攻击 分类: 系统2013-01-21 09:02 759人阅读 评论(0) 收藏 举报 来源:http://blog.xencdn.net/nginx- ...

  4. Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级) 【转】

    对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...

  5. nginx 增加 lua模块

    Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: ./configure –wi ...

  6. Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级)

    对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...

  7. Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用

    nginx可以通过limit_conn_zone 和limit_req_zone两个组件来对客户端访问目录和文件的访问频率和次数进行限制,另外还可以善用进行服务安全加固,两个模块都能够对客户端访问进行 ...

  8. Nginx实战(三) 日志配置与切割

    访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...

  9. nginx中有关命令和日志切割,配置文件加载的详细阐述

    一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...

  10. FastDFS的配置、部署与API使用解读(7)Nginx的FastDFS模块(转)

    1.Nginx的FastDFS模块什么作用? 我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传.下载.删除等操作.同时通过 FastDFS的HTT ...

随机推荐

  1. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  2. ajax全局

    $.ajaxSetup({ complete: function (xhr) { xhr.promise().done(function (json) { if (json.errorNo == &q ...

  3. 微软大楼设计方案(中等) 推公式+RMQ问题

    近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目.在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ih​i​​层. ...

  4. 从.NET看微软的焦虑

    节日没事,就像聊聊微软的NET. 1.孩子静悄悄,必定在作妖 截止目前,微软的市值达到1.85万亿美元,按说,这样一个宙斯级的巨无霸应该过的非常舒坦, 但是,和微软市值成鲜明的反差,我们从.NET的发 ...

  5. 使用nodejs爬取图片

    在运行代码前,请确保本机是否有nodejs环境 1 D:\ > node -v 2 v12.1.0 //版本号 需要用到的包 axios //请求页面 cheerio // 把get请求的页面 ...

  6. Makefile 流程控制(error,warning)等调试选项

    1.退出码 0 ok1 错误2 使用了-q 选项 且目标不需要更新 返回2 2.选项 -f --file 指定makefile脚本 -n --just-print --dry -run -- reco ...

  7. 恕我直言!!!对于Maven,菜鸟玩dependency,神仙玩plugin

    打包是一项神圣.而庄严的工作.package意味着我们离生产已经非常近了.它会把我们之前的大量工作浓缩成为一个.或者多个文件.接下来,运维的同学就可以拿着这些个打包文件在生产上纵横四海了. 这么一项庄 ...

  8. Hadoop 3.0 EC技术

    Hadoop 3.0 EC技术 EC的设计目标 Hadoop默认的3副本方案需要额外的200%的存储空间.和网络IO开销 而一些较低I/O的warn和cold数据,副本数据的访问是比较少的(hot数据 ...

  9. HTTP2.0 的学习笔记

    1 1 1 HTTP2.0 1 11 1 1 1 1 1 1 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,也被称为HTTP ove ...

  10. ES6 ...rest In Action

    ES6 ...rest In Action const arr = [ 2.48, 13.77, 8.64, 20.17, 8.94, 8.07, 12.05, 5.71, 17.54, 2.63 ] ...