热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(三)Nginx配置·续

2019独角兽企业重金招聘Python工程师标准概述前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置主要是以下三个1.

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

概述

  • 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置
  • 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间

Nginx访问日志

1.先看看日志格式

#日志的路径
[root@centos7mei ~]# vim /usr/local/ngin/conf/nginx.conf
#搜索log_format
#注意下面这段log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'' $host "$request_uri" $status'' "$http_referer" "$http_user_agent"';

名词解释:

名称解释
$remote_addr客户端IP(公网IP)
$http_x_forwarded_for代理服务器的IP
$time_local服务器本地时间
$host访问主机名(域名)
$request_uri访问的url地址
$status状态码
$http_refererreferer
$http_user_agentuser_agent

2.刚才在主配置文件中定义了日志格式,接下来还需要在虚拟主机配置中定义日志的储存路径,最后面指定日志的格式名字

[root@centos7mei ~]# cd /usr/local/nginx/conf/vhost/
[root@centos7mei vhost]# ls
default.conf test.com.conf
#编辑配置文件
[root@centos7mei vhost]# vim test.com.conf
#内容如下
[root@centos7mei vhost]# cat test.com.conf
server
{listen 80;server_name test.com test2.com test3.com;index index.html index.htm index.php;root /data/wwwroot/test.com;if ($host != 'test.com' ) {rewrite ^/(.*)$ http://test.com/$1 permanent;}#加上这一行access_log /tmp/1.log combined_realip;
}
#检查读写并重新加载服务
[root@centos7mei vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@centos7mei vhost]# /usr/local/nginx/sbin/nginx -s reload

3.测试

#访问两次网站
[root@centos7mei vhost]# curl -x127.0.0.1:80 test3.com/index.html/SDFAS -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Fri, 17 Aug 2018 18:24:04 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://test.com/index.html/SDFAS[root@centos7mei vhost]# curl -x127.0.0.1:80 test2.com/index.html/SDFAS -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Fri, 17 Aug 2018 18:24:23 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://test.com/index.html/SDFAS
#这里的问题是直接抄视频,没看自己写的具体路径
[root@centos7mei vhost]# cat /tmp/test.com.log
cat: /tmp/test.com.log: No such file or directory
#这下面就能看到访问日志了
[root@centos7mei vhost]# cat /tmp/1.log
127.0.0.1 - [18/Aug/2018:02:24:04 +0800] test3.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"
127.0.0.1 - [18/Aug/2018:02:24:23 +0800] test2.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"

Nginx日志切割

  • 日志记录了很多东西,但不是每个都是有用的,所以需要对其做一些操作,去其糟粕取其精华。
  • 切割日志需要用到shell脚本

1.添加脚本

[root@centos7mei vhost]# vim /usr/local/sbin/nginx_log_rotate.sh
#脚本内容
[root@centos7mei vhost]# cat /usr/local/sbin/nginx_log_rotate.sh
#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
domv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`
#执行一下脚本
[root@centos7mei vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20180817
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls 1.log
+ for log in '`ls *.log`'
+ mv 1.log 1.log-20180817
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 16489

2,测试

#清理文件
[root@centos7mei vhost]# find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
#这里报错是因为没有满足条件的文件
rm: missing operand
Try 'rm --help' for more information.
#查找下
[root@centos7mei vhost]# find /tmp/ -name *.log-* -type f
/tmp/1.log-20180817
## 最后添加计划任务,清理文件总不能我们自己每天手动清理吧
[root@centos7mei vhost]# crontab -e
#内容
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

静态文件不记录日志和过期时间

  • 静态文件可以不记录日志,原因是除了占空间,没别的什么用

ps: 不记录日志就是说我们在访客记录中看不到,访客访问静态文件的信息

  • 简单的来说就是添加配置文件,让访问日志不记录静态文件,还有给图片缓存添加过期时间

1.编辑配置文件

#进入虚拟主机配置文件
[root@centos7mei vhost]# vim test.com.conf
#内容
[root@centos7mei vhost]# cat test.com.conf
server
{listen 80;server_name test.com test2.com test3.com;index index.html index.htm index.php;root /data/wwwroot/test.com;if ($host != 'test.com' ) {rewrite ^/(.*)$ http://test.com/$1 permanent;}#主要是这里到access_log前面的括号完location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${#过期时间expires 7d;#表示 不记录访问日志access_log off;}location ~ .*\.(js|css)${expires 12h;access_log off;}access_log /tmp/1.log combined_realip;
}
#检查读写和重新加载服务
[root@centos7mei vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@centos7mei vhost]# /usr/local/nginx/sbin/nginx -s reload

2.测试

#这里我们创建两个图片文件,就是图片格式结尾的文件,然后去访问,最后查看访问日志
[root@centos7mei vhost]# cd /data/wwwroot/test.com/
[root@centos7mei test.com]# ls
index.html
#这里马虎的出现了一个符号错误
[root@centos7mei test.com]# vim 1,gif
[root@centos7mei test.com]# vim 2.gs
#导致访问出现404
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/1.gif



404 Not Found



nginx/1.8.0



#原来是点写成了逗号,根本没那个文件,所以报错了
[root@centos7mei test.com]# ls
1,gif 2.gs index.html
[root@centos7mei test.com]# rm -f 1,gif
[root@centos7mei test.com]# ls
2.gs index.html
[root@centos7mei test.com]# vim 1.gif
[root@centos7mei test.com]# ls
1.gif 2.gs index.html
#连接下
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/1.gif
fdsafs:
[root@centos7mei test.com]# curl -x127.0.0.1:80 test.com/2.gs
dasdfsfdadf
[root@centos7mei test.com]# curl -I -x127.0.0.1:80 test.com/1.GIF
HTTP/1.1 404 Not Found
Server: nginx/1.8.0
Date: Sat, 18 Aug 2018 01:21:14 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
#添加-I选项能看到更加详细的信息
[root@centos7mei test.com]# curl -I -x127.0.0.1:80 test.com/1.gif
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Sat, 18 Aug 2018 01:21:21 GMT
Content-Type: image/gif
Content-Length: 8
Last-Modified: Sat, 18 Aug 2018 01:04:52 GMT
Connection: keep-alive
ETag: "5b7770b4-8"
Expires: Sat, 25 Aug 2018 01:21:21 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytes
#这里能看到我们访问的1.gif(小写的)就没有记录到日志里面了
[root@centos7mei test.com]# cat /tmp/1.log
127.0.0.1 - [18/Aug/2018:03:35:40 +0800] test2.com "/index.html/SDFAS" 301 "-" "curl/7.29.0"
127.0.0.1 - [18/Aug/2018:09:21:14 +0800] test.com "/1.GIF" 404 "-" "curl/7.29.0"

转:https://my.oschina.net/u/3707523/blog/1929898



推荐阅读
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Ansible:自动化运维工具详解
    Ansible 是一款新兴的自动化运维工具,基于 Python 开发,集成了多种运维工具(如 Puppet、CFEngine、Chef、Func 和 Fabric)的优点,实现了批量系统配置、程序部署和命令执行等功能。本文将详细介绍 Ansible 的架构、特性和优势。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • Python多线程编程技巧与实战应用详解 ... [详细]
author-avatar
丁丽君coolboy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有