logrotate实现多站点nginx日志切割

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

CentOS环境PPTP搭建VPN服务器

安装包:

1、下载ppp及pptpd安装包:

# wget  http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-14.1.rhel5.x86_64.rpm

# wget  http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.x86_64.rpm

2、安装ppp及pptpd:

先安装ppp

# rpm -ivh  ppp-2.4.4-14.1.rhel5.x86_64.rpm

*注:如果系统提示需要安装libpcap-0.9.4,请先下载安装libpcap-0.9.4

安装libpcap-0.9.4:

# wget http://vault.centos.org/5.11/os/x86_64/CentOS/libpcap-0.9.4-15.el5.x86_64.rpm

# rpm -ivh libpcap-0.9.4-15.el5.x86_64.rpm

最后安装pptpd

#rpm -ivh pptpd-1.4.0-1.rhel5.x86_64.rpm

3、配置pptpd:

# vi /etc/ppp/options.pptpd

在最后开启日志及DNS服务器地址

#nologfd

logfile /var/log/pptpd.log

ms-dns 8.8.8.8

ms-dns 8.8.4.4

:wq保存并退出

4、VPN拨号用户配置

# vi /etc/ppp/chap-secrets

配置格式为:拨号用户名    服务器类型   密码    分配IP(*为自动分配)

如:user     pptpd    123456    *

5、设置pptpd服务器IP及客户端分配地址池

localip 192.168.0.1
remoteip 192.168.0.2-254

:wq保存并退出

完成以上步骤,pptpd服务器已配置完成,可以实现拨号连接

6、启动pptpd服务

# service pptpd start

设置pptpd开机自动启动

# chkconfig pptpd on

7、开启服务器系统路由功能,支持包转发

vi /etc/sysctl.conf

增加一行,开启IP转发功能  net.ipv4.ip_forward = 1

注释一行,关闭SYN cookie功能 #net.ipv4.tcp_syncookies = 1

:wq保存并退出

8、配置防火墙

参考配置:

*nat
:PREROUTING ACCEPT [9983:654558]
:POSTROUTING ACCEPT [743:47159]
:OUTPUT ACCEPT [743:47159]
-A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source 123.456.789.0(服务器外网IP地址)
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:XMIRROR_DDOS – [0:0]
:XMIRROR_INPUT_CC – [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 1723 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -i ppp+ -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
-A FORWARD -s 192.168.0.0/24 -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356

#黑名单设置
-A INPUT -s 103.207.36.41 -j DROP
-A INPUT -s 116.31.116.16 -j DROP
COMMIT
# Completed on Sun Apr 2 01:12:45 2017

配置文件下载:iptables

9、开启自动建立ppp设备节点

vi /etc/rc.d/rc.local

在文件末尾加上 mknod /dev/ppp c 108 0

:wq保存退出

CentOS 6.5安装aria2

由于yum install aria2无法找到安装包,试了好几个源,都找不到,于是自己找了一些地址:

1、下载安装包:

# wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/aria2-1.16.4-1.el6.rf.x86_64.rpm

# wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/nettle-2.2-1.el6.rf.x86_64.rpm

# wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/nettle-devel-2.2-1.el6.rf.x86_64.rpm

2、安装

安装aria2时会提示

error: Failed dependencies:
libnettle.so.4()(64bit) is needed by aria2-1.16.4-1.el6.rf.x86_64

所以,需要先安装nettle-2.2.1,依次执行以下安装命令即可:

# rpm -ivh nettle-2.2-1.el6.rf.x86_64.rpm

# rpm -ivh nettle-devel-2.2-1.el6.rf.x86_64.rpm

# rpm -ivh aria2-1.16.4-1.el6.rf.x86_64.rpm

3、测试(下载百度首页)

# aria2c http://www.baidu.com

05/23 00:00:13 [NOTICE] Download complete: /home/root/index.html

Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================
678b8e|OK | 0.9MiB/s|/home/root/index.html

Status Legend:
(OK):download completed.

OSA安装过程中提示运行“install/auto_prepare.sh”安装错误

对于OSA安装过程中进行到如下步骤要求运行install/auto_prepare.sh

OSA

按提示在中断运行install/auto_prepare.sh后提示以下错误

install error!
Your script into the path:/dev/pts/0/osa/ctrlphp/install or /dev/pts/0/osa/.
exp: /usr/local/osa/auto_prepare.sh or /usr/local/osa/ctrlphp/install/auto_prepare.sh .

经排查为auto_prepare.sh脚本中获取脚本路径出错,修改auto_prepare.sh脚本

将第9行:

INSTALL_PATH=$(dirname $(readlink /proc/$$/fd/255))

更改为:

INSTALL_PATH=$(dirname $(dirname $(pwd)))

然后重新执行脚本即可。

osa_install

Linux下批量查找并执行命令

以批量设置文件夹所有人为例:

find ./ -name html -type d -exec chown -R www-data:www-data {} \;

./表示要查找的目录,此处表示在当前目录下查找

html表示要查找的目录或文件名

-type d 表示只查找文件夹

-exec 命令 {} \; 表示对查找结果要执行的命令

注意:此处{}和\;之间要有空格,否则会报“遗漏 ·-exec·命令”

chown -R www-data:www-data 是要执行的命令,此处指更改目录及其子目录的所有者为www-data

 

 

多域名调用Ueditor配置及上传路径配置

1、多域名调用Ueditor的配置:

默认状态下,会出现如(ueditor Protocols, domains, and ports must match.)的跨域访问错误。

修改ueditor/ueditor.config.js,将URL写成固定值ueditor的路径即可

1111111

2、上传文件路径配置

默认状态下,从编辑器上传的图片都是相对路径。

修改/ueditor/php/config.json,将配置文件中imageUrlPrefix参数全部设置域名前缀。

2222222

 

Apache反向代理配置

1、修改APACHE配置文件httpd.conf

修改加载模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

2、修改虚拟目录配置httpd-vhost.conf

<VirtualHost>

ServerName ?www.test.com #设置需要代理的域名

ServerAias ?www.test.com

<Proxy http://www.test.com>

Options MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Proxy>

ProxyPass / http://192.168.0.2/ ? ?#设置代理目标服务器及访问的目录

ProxyPassReverse / http://192.168.0.2/

ErrorLog “/log/www.test.com-error.log”

Transferlog “/log/www.test.com-access.log”

</VirtualHost>

3、重启apache服务器生效

cd /data/apache/bin

./apachectl restart