成航先森 成航先森

成都航院计算机系一个学生的个人博客

 

随便看看:

分段图 CDNkeepalivedLinuxmysqlnginxrsyncUEditorWordPressWordPress插件七牛体育部信息志愿服务队免流全体例会向党组织靠拢团学会学习部宣传部影视相关心理部成都航院报社招生信息教学资源文艺部毕业就业流量活动生活杂谈社会实践部站长经历系部介绍系部动态纪检部组织部经验分享老师腾讯云资源下载轻松时刻高考录取分数线

标签:nginx

CentOS 7中的Nginx控制脚本

经验杂笔CentOS 7中的Nginx控制脚本

标签:, | 5 条评论 | 2017-04-26

先森安装Nginx都是编译安装,所以不像yum安装的自带控制脚本,也就是不能通过service nignx start这种方式启动Nginx。不过在CentOS 6中,Nginx的启动脚本早已备好,增加控制脚本轻轻松松。不过,先森公司的客户要求新的服务器全用CentOS 7的操作系统,如此一来,先森之前的控制脚本就没用了。虽然先森当初培训的时候学习的就是RedHat 7,但是参加工作以来,一直使用的CentOS 6的操作系统,早已把7版本的命令习惯忘完。先森觉得,CentOS 6和CentOS 7的变化最明显的就是控制服务启动关闭的命令,由service换成了systemctl。虽然在CentOS 7中service命令依旧可以用,但是使用的效果已经大打折扣了。在网上找了半天,想要找到与CentOS 6类似的控制脚本,用service启动的,但是效果差强人意,甚至可以说无效。最后终于找到了使用systemctl的控制脚本,下面分享一波。控制脚本第一步:编辑vim /usr/lib/systemd/system/nginx.service文件,添加以下内容:注意要修改nginx的目录,先森的是放在默认的/usr/local/nginx中。[Unit]Description=nginx - high performance web serverDocumentation=http://nginx.org/en/docs/After=network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target第二步:添加可执行权限:chmod 755 /usr/lib/systemd/system/nginx.service第三步:添加开机启动:systemctl enable nginx控制Nginx:systemctl start nginx    # 启动Nginxsystemctl stop nginx    # 关闭Nginxsystemctl status nginx    # 查看Nginx状态总结唉,CentOS 7咋用咋不习惯,但是系统版本的升级总是大势所趋,还是得慢慢习惯。运维的路,还很长。

Nginx日志切割

经验杂笔Nginx日志切割

标签:, | 2 条评论 | 2017-02-06

Nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析,也会造成服务器硬盘占用越来越大。我们通常是每天对Nginx的日志做切割。Nginx日志切割方法有很多种,本文主要讲的是用shell脚本对日志压缩切割。Nginx日志切割-单个日志有时候我们的日志只有两个,一个access的,一个error的。可能只有access的日志比较大,通常错误日志又不会太大,那么需求只对access的日志进行切割。这时候用这个单个日志切割的脚本即可,优点是比较简单。#!/bin/shcd /usr/local/nginx/logs/#压缩并按日期命名access.log日志tar -zcvf log_history/access_`date +%Y%m%d`.log.tar.gz access.log#删除源日志rm -fr access.log#删除15天前的切割日志find /usr/local/nginx/logs/ -name "*.log.tar.gz" -type f -mtime +15 -exec rm {} \; > /dev/null 2>&1#向 Nginx 的进程发送 USR1 信号以重新打开日志文件killall -s USR1 nginxNginx日志切割-多个日志若Nginx配置了虚拟主机等会保存多个日志的,可能还需要对多个日志进行切割,那么就可以使用以下脚本进行多个日志切割。#!/bin/shif [ ! -d /usr/local/nginx/logs/log_history ]; then  mkdir /usr/local/nginx/logs/log_historyficd /usr/local/nginx/logs/array=(access error host.access host.error host.ssl-access host.ssl-error)for data in ${array[@]}  dotar -zcvf log_history/${data}_`date +%Y%m%d`.log.tar.gz ${data}.log >> /dev/nullrm -fr ${data}.log donefind /usr/local/nginx/logs/log_history/ -name "*.log.tar.gz" -type f -mtime +15 -exec rm {} \; > /dev/null 2>&1killall -s USR1 nginxNginx日志切割-定时任务无论是单个日志切割,还是多个日志切割,都需要使用cron服务定期执行该脚本,下面设置成的是每晚23点59执行,这样nginx访问日志正好记录的是全天的访问记录。#crontab -e59 23 * * * /usr/local/nginx/logs/nginx_access_log.sh定时任务

解决Nginx报错The plain HTTP request was sent to HTTPS port

经验杂笔解决Nginx报错The plain HTTP request was sent to HTTPS port

标签:, | 3 条评论 | 2016-12-09

先森给现网业务搭建了Nginx做反向代理服务,包括http协议和https协议,结果申请公网IP后访问发现报错“The plain HTTP request was sent to HTTPS port”。经过一番研究后解决了问题,这里做个记录。Nginx 400错误解决问题解决方式1:使用https://ip:port/*方式访问,如果直接ip:port/*则是http协议,所以会报错The plain HTTP request was sent to HTTPS port(普通的HTTP请求被发送到HTTPS端口)解决方式2:打开配置文件,查看HTTPS server段的配置:修改前:server {        listen       443 ssl;        server_name  localhost;        ...}修改方式,将监听端口后的“ssl”删除,即:server {        listen       443;        server_name  localhost;        ...}这样再直接用ip:port/*访问则不会再报The plain HTTP request was sent to HTTPS port错误了。

官方微信
返回顶部