标签 nginx 下的文章



出现的问题:mp4视频在Chrome正常播放,但是Safari无法播放。

可能的原因:1.mp4视频编码问题,Safari上可播放的mp4视频编码最好是H.264,音频AAC编码。

                    2.服务器响应头缺失

测试环境:Nginx/1.13.5

解决办法:

1.视频编码的问题,使用ffmpeg进行转码

    ffmpeg -i 源视频.mp4 -c copy 转码视频名称.mp4

2.经测试得知Mac和IOS播放mp4视频文件服务器响应头必须包括Content-Range和Content-Length,其他的Content-Type: "video/mp4"、Accept-Ranges: bytes响应头可有可无。

3.其中如果开启了gzip on配置可能导致Content-Length无法获取,进而Content-Range无法正常返回。可将gzip配置关闭或者压缩类型中去掉video/mp4类型。

4.另外其他网上方法添加响应头add_header Accept-Ranges bytes;和chunked_transfer_encoding off;配置,测试了没有效果。


nginx日志默认生成在指定的一个文件日志里,久而久之文件会越来越大不利于查看和管理

目前有以下几个方案可以进行nginx日志的切割:

 一、安装修改版本的nginx,可实现日志自动按天记录。不过此方法需要重新编译nginx,不适合现有业务进行操作 

二、配置shell脚本,当前网上最普遍的方法。不过此方法一个脚本只支持一个日志的切割,并不适合多个站点的切割。 多个站点日志切割需要逐个配置域名,相应的有python脚本实现方式,也只是将shell脚本改为python脚本格式。

三、logrotate方式切割日志,系统自动执行,可对日志进行压缩,目前认为是最好的方式。 

#vi  /etc/logrorate.d/nginx 

 配置如下:

 /data/wwwlogs/*nginx.log {   #多个目录可空格隔开 

daily                  #每日执行 

rotate 31           #保留31个日志 

missingok          #跳过不存在的日志 

dateext             #以日期为结尾重命名日志文件 

compress
notifempty 

sharedscripts
postrotate         #只执行一次下面的脚本 

[ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 

endscript 

每天执行的时间由cron管理,测试大部分在凌晨3点左右,时间可在/etc/crontab中修改 

 增加59 23 * * * root run-parts /etc/cron.daily即可 

测试命令:/usr/sbin/logrotate -d /etc/logrotate.d/nginx

  

 查看分割记录cat /var/lib/logrotate.status