nginx禁止访问隐藏文件
默认配置文件中禁止访问.htaccess文件语法如下:
location ~ /\.ht {
deny all;
}
禁止访问所有目录(包括子目录)下的隐藏文件
location ~ /\. {
deny all;
}
默认配置文件中禁止访问.htaccess文件语法如下:
location ~ /\.ht {
deny all;
}
禁止访问所有目录(包括子目录)下的隐藏文件
location ~ /\. {
deny all;
}
前些日子,系统上线了,发现tomcat 下的日志增长得挺快的,写了个脚本清除n天以前的日志
web_def_tomcat_log_path=/Application/tomcat/log
$web_def_tomcat_log_expire_days=7
if [ “$web_def_tomcat_log_expire_days” -gt 0 ]
then
echo “find $web_def_tomcat_log_path -follow -mtime +$web_def_tomcat_log_expire_days -name ‘*.log’ -exec rm -f {} \;”
find $web_def_tomcat_log_path -follow -mtime +$web_def_tomcat_log_expire_days -name ‘*.log’ -exec rm -f {} \;
fi
由于web的mysql下面挂的同步太多了,每天产生1-2G的mysql-bin文件,因此也写了个清除mysql-bin的文件,这个文件会至少保留最新的一个mysql-bin.0*文件
web_def_host=”1.2.3.4″ #mysql的ip
web_def_port=3306 #mysql的端口
web_def_username=”tester” #mysql的用户
web_def_password=”123″ #mysql的密码
web_def_mysql_expire_logs_days=7 #删除7天以前的mysql-bin,但是最后至少保留一个文件
mysql_exe=”mysql -h $web_def_host -P $web_def_port -u $web_def_username –password=$web_def_password -e ”
if [ “$web_def_mysql_expire_logs_days” -gt 0 ]
then
#获取n天以前被修改的mysql-bin文件,
logFileName=`find $web_def_mysql_data_path -follow -atime -$web_def_mysql_expire_logs_days -name ‘mysql-bin.0*’ |sort|head -1`
if [ “$logFileName” != “” ]
then
logFileName=`basename $logFileName`
echo $mysql_exe “\”PURGE MASTER LOGS TO ‘$logFileName’\””
$mysql_exe “PURGE MASTER LOGS TO ‘$logFileName'”;
fi
fi
再举例:
要将文件test.pdf分包压缩成500 bytes的文件:
tar czf – test.pdf | split -b 500 – test.tar.gz
最后要提醒但是那两个”-“不要漏了,那是tar的ouput和split的input的参数。
这里对命令做一些讲解。
压缩和分割命令行中红色部分的为命令对应的I/O文件名参数,其中-表示标准输入或输出。那么结合上面的例子,tar命令表示的意思就是将logs目录压 缩,生成的结果直接输送到标准输出上;而split命令表示从标准输入获得文件内容进行分割,结果文件前缀为logs.tar.bz2.。二者再通过管道 将各自的标准输入输出对接起来。
这里再解释一下split命令的参数含义:
-b SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M)
-d 使用数字而不是字母作为后缀名
-a X 指定后缀名的长度,默认为2位
这样上面的命令就可以变化为:
tar cjf – logs/ |split -b 1m -d -a 1- logs.tar.bz2.
注: $ cat file1 file2 file3 > bigfile
自己的pic文件目录
tar czvf – pic | split -b 1900m – pic.tar.gz.
昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 有的是502错误
经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒:
写个程序测试
echo ‘aaa’;
set_time_limit(0);
sleep(40);
echo ‘aa’;
依然超时,可以确定set_time_limit这个函数没生效。
再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题:
<value name=”request_terminate_timeout”>30s</value>
这个值修改到 0秒的是时候 是不限制。这样对服务器性能有损失。我设置的是900秒解决问题
Linux系统下 lnmp的集成环境
把 /usr/local/php/etc/php-fpm.conf 中的 request_terminate_timeout = 900 就可以了