提示错误信息

nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

原因分析:nginx/目录下没有logs文件夹

 

 

 解决方法:

mkdir logs
chmod 700 logs

正常情况的信息输出:

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

 

启动成功后打不开链接

1.ping

2telnet 端口(CentOS7:验证端口  firewall-cmd --query-port=80/tcp)

  下面我们开启80端口:
  firewall-cmd --add-port=80/tcp --permanent
  #重启防火墙
  systemctl restart firewalld
  --permanent #永久生效,没有此参数重启后失效

 

配置nginx开机自启动

vim /etc/rc.d/rc.local

nginx no route to host怎么解决 nginx no such file_客户端

 

 

pid问题

问题描述

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid" # pid丢 失
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) # 文件或者文件夹丢失

解决方法

如果文件夹缺失,则创建该文件夹

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 执行重新启动命令,则会生成nginx.pid文件

nginx日志切割

 第一种

nginx的日志分为访问日志(access.log)和错误日志(error.log),日志过大会影响nginx的性能,也不利于日志的分析,所以需要将日志分割处理。

日志常见的配置参数:

$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

可以记录用户是从哪个链接访问过来的 

1. 进入/usr/local/nginx/sbin目录下,并创建shell文件 

cd /usr/local/nginx/sbin 
touch cut_nginx_log.sh 
chmod +x cut_nginx_log.sh

2. 编辑shell文件,编写日志切割命令 

#!/bin/bash

# This script run at 00:00

# The Nginx logs path

logs_path="/usr/local/nginx/logs/historyLog"

logPath="/usr/local/nginx/logs/"

record_time=$(date -d "yesterday" +"%Y-%m-%d")

#创建备份目录

mkdir -p ${logs_path}/

#将日志移动到上面的目录中

mv ${logPath}/access.log ${logs_path}/access、access.${record_time}.log

mv ${logPath}/error.log ${logs_path}/error、error.${record_time}.log

#nginx重读配置文件

kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) 

第二种

1. 安装定时任务

yum install crontabs

2. 添加到crontab定时任务中 

crontab -e 0 0 * * * bash /usr/local/nginx/sbin/cut_nginx_log.sh #将于每天凌晨0点0分将 nginx日志重命名为昨天的日期格式,并重新生成今天的新日志

3. 重启crontab服务 

/sbin/service crond restart //重启服务 
/sbin/service crond reload //重新载入配置

常用定时任务命令 

  CentOS6上的cron命令: 

service crond start // 启动服务

service crond stop // 关闭服务

service crond restart // 重启服务

service crond reload // 重新载入配置

service crond status // 查看状态

crontab -e // 编辑任务

crontab -l // 查看任务列表 

  CentOS7上的cron命令: 

systemctl start crond.service/crond start // 启动服务

systemctl stop crond.service/crond stop // 关闭服务

systemctl restart crond.service/crond restart // 重启服务

systemctl reload crond.service/crond reload // 重新载入配置

systemctl status crond.service/crond status // 查看状态

  crontab命令介绍

 




星期几

年(可选) 

取值范围

0-59

0-23 

1-31 

1-12

1-7

2021/2022/.....

常用表达式示例: 

*/1 * * * * // 每分钟执行 
59 23 * * * // 每日凌晨(每天晚上23:59)执行 
0 1 * * * // 每天1点执行 
0 0 * * 1 // 每周一执行

 

运维页面

使用错误码判断是否跳转到运维页面 

状态码

含义

500

服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问

题都会在服务器的程序码出错时出现。 

501

服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持

其对任何资源的请求。 

502

作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 

503

由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将

在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用

以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响

应的方式处理它。 注意:503状态码的存在并不意味着服务器在过载的时候必须使用

它。某些服务器只不过是希望拒绝客户端的连接。 

504

作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的

服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。 注意:

某些代理服务器在DNS查询超时时会返回400或者500错误

505

服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。这暗示着服务器不能或不愿使

用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪

些协议的实体。 

506

由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协

商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的

重点。 

207

服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)

209

服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。 

510

获取资源所需要的策略并没有没满足。(RFC 2774)