其他分享
首页 > 其他分享> > 问题及解决方案

问题及解决方案

作者:互联网

提示错误信息

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

 

 

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) 

 

标签:logs,解决方案,问题,nginx,usr,服务器,local,crond
来源: https://www.cnblogs.com/dabo-tian/p/16175332.html