/*********************系统盘规划*********************************/
/dev/vda 8G
/dev/vdb 500G
/dev/vda 系统盘 挂载在 /
/dev/vdb 分四个逻辑盘
/dev/vdb1 400G 用作项目应用 挂载 /var/www
/dev/vdb2 60G 用作日志记录 挂载 /var/log
/dev/vdb3 20G 分系统使用的软件其余的工具 例如 一些测试网速的软件就存放安装到这里 挂载 /opt
/dev/vdb4 20G /home 数据交换
/**********sshd key 登录*******************************************/
必须将 key 备份到本地 登录要用。
/************sshd 登录编码格式 vim设置 时区设置 关闭selinux*************/
vim /etc/sysconfig/i18n
vim ~/.vimrc
vim /etc/profile
###设置vi, vim的默认的tab、行号显示参数
##设置正确的时区
/*******************************************防火墙***************/
vim /etc/sysconfig/iptables
service iptables start
/*********************禁止root 创建普通用户******************************/
useradd wyj2507
passwd wyj2507 (密码 youanbao@qq.com)
visudo (99行)
/*********************禁止root 创建普通用户********************/
/*******************************************修改HOSTS*******************/
vi /etc/hosts
27.0.0.1 localhost VM_41_93_centos
#使用DNS域名服务器来解析名字
order bind hosts
#一台主机是否存在多个IP
multi on
#如果用逆向解析找出与指定的地址匹配的主机名,对返回的地址进行解析以确认它确实与您查询的地址相配.为了防止“骗取”IP地址
nospoof on
service network restart
/*****************精简开机自启动服务*************************************/
7个运行级别 0 系统停机模式 1 单用户 2 多用户模 3 完整多用户
4 系统未使用 5 图形化模式 6 重启模式
init 0 1 2 3 4 5 6 设置运行级别
新系统只保留crond,network,syslog(rsyslog),sshd自启动服务 后期加
查看运行级别 runlevel
查看开启的服 chkconfig --list
#关闭全部服务
#或者
#开启需要的服务
#或者需要使用防火墙的话可以开启iptables和ip6tables
/******************清理登陆的时候显示的系统及内核版本等***********************/
#查看登陆信息
cat /etc/redhat-release
cat /etc/issue
#清理登陆信息
echo >/etc/redhat-release
echo >/etc/issue
#关闭重启ctl-alt-delete组合键
vi /etc/init/control-alt-delete.conf
#注释掉
#exec /sbin/shutdown -r now "Control-Alt-Deletepressed"
#chattr类似chmod修改文件/目录属性 级别高于chmod
#chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
#锁定关键文件系统
#删除不必要的系统用户和群组
#删除不必要的群组
/******************************************清理登陆的时候显示的系统及内核版本等********************************/
/*****************************内核参数优化*************************/
vi /etc/sysctl.conf 增加以下配置
echo "modprobe nf_conntrack" >> /etc/rc.local
echo "modprobe bridge" >> /etc/rc.local
配置生效
# modprobe nf_conntrack
# sysctl -p
修改iptables启动脚本,在star()函数里面加上
# vi /etc/init.d/iptables
/sbin/sysctl -p
service iptables restart
iptables -v -n -L
#查看当前的会话
cat /proc/net/nf_conntrack | wc -l
[b]lNMP[/b]
/*******************************************依赖包*************/
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
## 启用SSL模块 启用nginx状态模块 启用realip模块(将用户IP转发给后端服务器)
或者
./configure --with-zlib=/opt/zlib-1.2.8 --with-ssl=/usr/local/ssl && make && make install
--with-openssl=/usr/local/ssl --with-libs=/usr/local/ssl
ldd $(which curl)
ln -s /usr/local/ssl/lib/libcrypto.so /usr/local/lib/libcrypto.so.1.0.0
cd /opt/php-5.6.12/ext/curl
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-curl=/opt/curl-7.44.0
make && make install
编译oci php扩展
rpm -ivh oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
配置库路径 libsqlplus.so
vim /etc/ld.so.conf
/usr/lib/oracle/12.1/client64/lib/
ldconfig
/*******************************************Mysql********************************/
mysql
wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.44.tar.gz
groupadd mysql
useradd -r -g mysql mysql
##此处本来只应该装客户端
[client]
socket = /var/run/mysqld/mysqld.sock
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local/mysql
chown -R mysql . //更改所有文件的所有者为mysql
chgrp -R mysql . // 更改所有文件的所属组为mysql
2. mysql 初始化安装 执行以下命令 //以mysql的身份执行scripts/mysql_install_db脚本
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--user=mysql \
--datadir=/usr/local/mysql/data
chown -R root . //再将所有文件的所有者改为root
chown -R mysql data //其中要将data目录及其子文件的所有者改为mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql/data
cp /etc/my.cnf /etc/my.cnf_bak
cp /usr/local/mysql/etc/my.cnf /etc/my.cnf
mkdir /var/run/mysqld
chmod -R 777 /var/run/mysqld
mkdir /usr/local/mysql/run
chmod -R 777 /usr/local/mysql/run
/usr/local/mysql/bin/mysqld \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--plugin-dir=/usr/local/mysql/lib/plugin \
--user=mysql \
--log-error=/usr/local/mysql/log/mysql_error.log \
--pid-file=/usr/local/mysql/run/mysql.pid \
--socket=/var/run/mysqld/mysqld.sock \
--port=3306 &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
客户端
yum install mysql
update user set password=passworD("wyj_2015") where user='root';
update user set host='%' where user='root';
flush privileges;
/*******************************************php*********************************/
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
##最小权限
#session
/*********************************************启动命令***************************/
pkill php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
chown -R nobody:nobody /usr/local/php/sess
chown nobody:nobody /dev/shm/sess/weijiaoyun
chmod u+wr -R /usr/local/php/sess/weijiaoyun
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #平滑重启 推荐
kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid` #平滑重启日志 推荐
pkill nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload
chown -R nobody:nobody /dev/shm
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` #平滑重启 推荐
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` #平滑重启日志 推荐
pkill mysqld
/usr/local/mysql/bin/mysqld \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--plugin-dir=/usr/local/mysql/lib/plugin \
--user=mysql \
--log-error=/usr/local/mysql/log/mysql_error.log \
--pid-file=/usr/local/mysql/run/mysql.pid \
--socket=/var/run/mysqld/mysqld.sock \
--port=3306 &
不保存历史
sed -i 's/HISTSIZE\=3000/HISTSIZE\=4/g' /etc/profile
source /etc/profile
传输命令
scp -i /root/wjyRsa -P 54321 -r /var/www/testscp 119.29.38.43:/var/www/
scp -i /root/devRsa -P 54321 -r /opt/curl-7.44.0 119.29.11.29:/opt/curl-7.44.0
/********************************系统工具**************************************/
yum -y install vim
yum install fonts-chinese.noarch
添加库文件路径
vim /etc/ld.so.conf
ldconfig
#滞后
--with-oci8 \
apparmor_parser -R /etc/apparmor.d/usr.sbin.tcpdump
tcpdump -i lo -w /var/www/logs/php-fpm2
/usr/sbin/tcpdump -i eth0 -w /var/www/logs/tcpdump7
yum -y install sysstat
sar -n EDEV 2 10
sar -n SOCK 2 10
sar -r 6 #men
sar -u 6 #cpu
top -p pid
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
Linux查看网络端口对应的程序
lsof -i :80
netstat -a |grep LISTEN |grep -v unix
ps -aux | sort -k4nr
ps -aux | grep -E "sap|USER"
#innode
df -i
#innode 大小
dumpe2fs -h /dev/vdb2 | grep "Inode size"
查看 进程的详细内存
pmap -q php-fpmp的pid
/**********************配置文件备份*******************************/
/usr/local/mysql/etc/my.cnf
cat /usr/local/php/etc/php.ini
[PHP]
cat /usr/local/php/etc/php-fpm.conf | grep -v '^;' | grep -v '^$'| less
cat /usr/local/nginx/conf/vhost/dev.xcoach.cn.conf | grep -v '^#' | grep -v '^$'| less
/*************************************定时程序***************************/
/*************************************************定时程序***********************************************************/
/***************************************其他************************/
保证每天多少PV的并发连接数的计算公式是:
并发连接数= PV / 统计时间(一天是86400) * 页面衍生连接次数 * http响应时间 * 因数(5) / web服务器数量
保证4千万PV的并发连接数:
(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接数
10PV的并发连接数:
(100000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 1台Web服务器 = 289连接数
ab.exe -n2000 -kc2000
svn
svn delete svn://119.29.11.29/weijiaoyun/Public -m "delete Public"
svn import -m 'reimport' /var/www/html/Public svn://119.29.11.29/weijiaoyun/Public
vim ignore.txt
Application/User/Conf/config.php
Application/Common/Conf/config.php
Runtime
Uploads
svn propset svn:ignore -F ignore.txt .
svn proplist
svn propget svn:ignore
ngnix无法打印日志 tail -f 没有磁盘空间 增大max_user_watches 参考 http://www.51know.info/system_security/inotify.html
echo '17000' > cat /proc/sys/fs/inotify/max_user_watches
批量替换 参考 http://php.net/manual/zh/language.exceptions.php (jim at anderos dot com)
grep 'throw new Exception' /var/www/ceshi/ -rl | xargs sed -i 's/throw new Exception/throw new \\Exception/g'
sed -i 's/throw new Exception/throw new \\Exception/g' `grep 'throw new Exception' /var/www/ceshi/ -rl`
错误日志分析
error_log="/usr/local/nginx/logs/weijiaoyun_error.log"
deny_ip_arr=`cat $error_log | grep -iE "referrer: \"http:\/\/123.249.24.233\/POST_ip_port.phpAccep" | sed 's/\(.*\)\(client: \)\(.*\)\(, server:.*\)/\3/g'`
for ip in $deny_ip_arr
do
exist=`cat /etc/sysconfig/iptables| grep $ip`
if [ -z "$exist" ]
then
/sbin/iptables -A INPUT -s $ip -j DROP
/sbin/iptables -I INPUT -s $ip -j DROP
/sbin/iptables-save > /etc/sysconfig/iptables
fi
done
PHP-FPM master进程可以理解以下信号
INT, TERM 立刻终止 QUIT 平滑终止 USR1 重新打开日志文件 USR2平滑重载所有worker进程并重新载入配置和二进制模块
php-fpm 关闭:kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
/**********************************************************其他******************************************************/
/****************服务优化 只开启必要的服务,提高安全性和性能********************/
###以下服务是必须的必须开启 其他可以尝试关闭
安装完Linux之后,以下服务是必须的必须开启,没列出的服务可关闭
acpid #高级控制电源管理接口
crond #定时执行任务
haldaemon #必须开启,否则可能导致控制台键盘鼠标无法使用
hidd #同上
irqbalance #支持多cpu中断,必须开启
kudzu #检测硬件变化时自动进行配置
lvm2-monitor #用于监测LVM状态
messagebus #Linux系统进程间通讯的关键服务
mdmonitor #监测软RAID健康状态 即使没有使用软RAID, 也强烈建议启用此服务
mdmpd #同上,即使没有多路径存储设备,也强烈建议启用之
network #网络支持
readahead_early #预先加载特定的应用程序到内存中以提供性能
readahead_later #同上
smartd #硬盘故障自动检测
sshd
syslog
klogd #如果服务列表中存在,则必须开启
提示:配置服务可使用ntsysv工具,比较方便
其它强烈建议开启的服务 iptables
/**********************************服务优化 只开启必要的服务,提高安全性和性能*************************************/
/*************************************日志************************************/
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
dmesg | grep IDE # 查看启动时IDE设备检测状况
route -n # 查看路由表
/**************************************参考***********************/
生产服务器环境最小化安装后 Centos 6.5优化配置备忘 http://zhangxugg-163-com.iteye.com/blog/1843724
Centos 6.5优化配置 http://www.lvtao.net/server/centos-server-setup.html
inotify: http://www.51know.info/system_security/inotify.html
Linux(Centos )的网络内核参数优化来提高服务器并发处理能力 http://blog.csdn.net/shaobingj126/article/details/8549494
日志 :http://www.centoscn.com/CentosSecurity/CentosSafe/2014/0304/2490.html
linux下使用tc模拟网络延迟和丢包 http://blog.csdn.net/duanbeibei/article/details/41250029
/*****************************参考***********************************/
/dev/vda 8G
/dev/vdb 500G
/dev/vda 系统盘 挂载在 /
/dev/vdb 分四个逻辑盘
/dev/vdb1 400G 用作项目应用 挂载 /var/www
/dev/vdb2 60G 用作日志记录 挂载 /var/log
/dev/vdb3 20G 分系统使用的软件其余的工具 例如 一些测试网速的软件就存放安装到这里 挂载 /opt
/dev/vdb4 20G /home 数据交换
ulimit -SHn 65535
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
/**********sshd key 登录*******************************************/
yum -y install sshd
echo "ClientAliveInterval 60" >> /etc/ssh/sshd_config
echo "ClientAliveCountMax 60" >> /etc/ssh/sshd_config
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
echo export TMOUT=1000000 >> /root/.bash_profile
source /root/.bash_profile
service sshd restart
/usr/bin/ssh-keygen -t rsa XXXXXXX
move XXXXXXX.pub /root/.ssh/authorized_keys
必须将 key 备份到本地 登录要用。
/************sshd 登录编码格式 vim设置 时区设置 关闭selinux*************/
yum install fonts-chinese
locale -a | grep -E 'zh|en_US'
vim /etc/sysconfig/i18n
LANG="zh_CN.gb18030"
LANGUAGE="zh_CN.gb18030:zh_CN.gb2312:zh_CN.gbk:zh_CN.utf8:zh_CN"
SUPPORTED="zh_CN.utf8:zh_CN:zh:en_US.utf8:en_US:en"
SYSFONT="lat0-sun16"
LANG="zh_CN.gb18030"
LANG="en_US.utf8"
source /etc/sysconfig/i18n
vim ~/.vimrc
set termencoding=gbk
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
vim /etc/profile
export LANG=zh_CN.utf8
export LC_ALL=zh_CN.gb18030
###设置vi, vim的默认的tab、行号显示参数
echo "set tabstop=4" >> /etc/virc
echo "set tabstop=4" >> /etc/vimrc
echo "set number" >> /etc/virc
echo "set number" >> /etc/vimrc
echo "alias vi=vim" >> ~/.bashrc
source ~/.bashrc
##设置正确的时区
cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
printf 'ZONE="Asia/Chongqing"\nUTC=false\nARC=false' > /etc/sysconfig/clock
###更新系统时间 每天凌晨6点更新系统时间
ntpdate pool.ntp.org
06*** /sbin/ntpdate pool.ntp.org 2>&1 | /bin/logger
设置/etc/sysconfig/selinux文件中
SELINUX=disabled
/*******************************************防火墙***************/
vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#-A INPUT -p icmp -j ACCEPT
#-A INPUT -i lo -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-N whitelist
-A whitelist -s 36.36.68.0/24 -j ACCEPT
-A whitelist -s 223.73.59.0/24 -j ACCEPT
-A whitelist -s 119.130.86.0/24 -j ACCEPT
-A whitelist -s 36.36.68.65 -j ACCEPT
-A whitelist -s 223.73.59.101 -j ACCEPT
-A whitelist -s 119.130.86.201 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID,NEW -j LOG
-A INPUT -s 180.0.0.0/8 -j DROP
-A INPUT -p tcp -m tcp --sport 54321 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 68 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --sport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m limit --limit 25/min --limit-burst 200 -j ACCEPT
COMMIT
service iptables start
/*********************禁止root 创建普通用户******************************/
useradd wyj2507
passwd wyj2507 (密码 youanbao@qq.com)
visudo (99行)
wyj2507 ALL=(ALL) ALL
/*********************禁止root 创建普通用户********************/
/*******************************************修改HOSTS*******************/
vi /etc/hosts
27.0.0.1 localhost VM_41_93_centos
#使用DNS域名服务器来解析名字
order bind hosts
#一台主机是否存在多个IP
multi on
#如果用逆向解析找出与指定的地址匹配的主机名,对返回的地址进行解析以确认它确实与您查询的地址相配.为了防止“骗取”IP地址
nospoof on
service network restart
/*****************精简开机自启动服务*************************************/
7个运行级别 0 系统停机模式 1 单用户 2 多用户模 3 完整多用户
4 系统未使用 5 图形化模式 6 重启模式
init 0 1 2 3 4 5 6 设置运行级别
新系统只保留crond,network,syslog(rsyslog),sshd自启动服务 后期加
查看运行级别 runlevel
查看开启的服 chkconfig --list
#关闭全部服务
for sun in `chkconfig --list|grep 3:启用 | awk '{print $1}'`;
do
chkconfig --level 3 $sun off
done
#或者
for sun in `chkconfig --list|grep 3:启用|awk '{print $1}'`;
do
chkconfig --level 3 $sun off
done
#开启需要的服务
for sun in crond rsyslog sshd network
do
chkconfig --level 3 $sun on
done
#或者需要使用防火墙的话可以开启iptables和ip6tables
for sun in crond rsyslog sshd network iptables ip6tables
do
chkconfig --level 3 $sun on
done
/******************清理登陆的时候显示的系统及内核版本等***********************/
#查看登陆信息
cat /etc/redhat-release
cat /etc/issue
#清理登陆信息
echo >/etc/redhat-release
echo >/etc/issue
#关闭重启ctl-alt-delete组合键
vi /etc/init/control-alt-delete.conf
#注释掉
#exec /sbin/shutdown -r now "Control-Alt-Deletepressed"
#chattr类似chmod修改文件/目录属性 级别高于chmod
#chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
#锁定关键文件系统
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
#删除不必要的系统用户和群组
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp
#删除不必要的群组
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers
/******************************************清理登陆的时候显示的系统及内核版本等********************************/
/*****************************内核参数优化*************************/
vi /etc/sysctl.conf 增加以下配置
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65535
net.nf_conntrack_max = 25000000 # 如果使用默认参数,容易出现网络丢包 最大会话数
net.netfilter.nf_conntrack_max = 25000000 # 如果使用默认参数,容易出现网络丢包 最大会话数
net.netfilter.nf_conntrack_tcp_timeout_established = 180 #会话连接超时变量 自动清除30分钟的无效链接
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
#TIME_WAIT 要过段时间释放 Linux 65535个端口
#1 SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击
#2 允许将TIME-WAIT sockets重新用于新的TCP连接
#3 开启TCP连接中TIME-WAIT sockets的快速回收
#4 系統默认的 TIMEOUT 时间
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
echo "modprobe nf_conntrack" >> /etc/rc.local
echo "modprobe bridge" >> /etc/rc.local
配置生效
# modprobe nf_conntrack
# sysctl -p
修改iptables启动脚本,在star()函数里面加上
# vi /etc/init.d/iptables
/sbin/sysctl -p
service iptables restart
iptables -v -n -L
#查看当前的会话
cat /proc/net/nf_conntrack | wc -l
[b]lNMP[/b]
/*******************************************依赖包*************/
yum install -y autoconf curl curl-devel cmake
yum install -y sendmail graphviz
yum install -y gcc gcc-c++
yum -y install python
yum -y install python-dev
yum install libicu-devel
yum install ncurses-libs
yum install ncurses-devel
yum -y install libxslt
yum install libxslt-devel
yum -y install curl-devel
yum -y install e2fsprogs-devel krb5-devel libidn-devel openssl-devel
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.gz
tar zxvf freetype-2.4.4.tar.gz
./configure
make && make install
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2
tar -jxvf pcre-8.37.tar.bz2
cd pcre-8.37
./configure
make && make install
wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz
tar -zxf openssl-1.0.1g.tar.gz
./config -fPIC enable-shared
make && make test && make install
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxf zlib-1.2.8.tar.gz
./configure
make && make install
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
## 启用SSL模块 启用nginx状态模块 启用realip模块(将用户IP转发给后端服务器)
./configure --prefix=/usr/local/nginx \
--user=nobody \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module \ #启用realip模块(将用户IP转发给后端服务器)
--with-pcre=/opt/pcre-8.37
--with-openssl=/opt/openssl-1.0.1g \
--with-zlib=/opt/zlib-1.2.8 \
wget http://xmlsoft.org/sources/old/libxml2-2.7.0.tar.gz
wget ftp://ftp.xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz
tar zxvf libxml2-2.9.2.tar.gz
./configure
make && make install
libjpeg
wget ftp://ftp.pl.freebsd.org/vol/rzm1/GraphicsMagick/delegates/libjpeg-6b.tar.gz
tar zxvf libjpeg-6b.tar.gz
./configure && make && make install
libpng
wget http://download.sourceforge.net/libpng/libpng-1.6.18.tar.gz
tar zxvf libpng-1.6.18.tar.gz
./configure
sed -i 's/LDFLAGS\=/LDFLAGS\=-L\/usr\/local\/lib/g' Makefile
sed -i 's/CPPFLAGS\=/CPPFLAGS\=-L\/usr\/local\/include/g' Makefile
make && make install
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxvf libmcrypt-2.5.7.tar.gz
./configure
make && make install
wget http://curl.haxx.se/download/curl-7.44.0.tar.gz
wget http://www.execve.net/curl/curl-7.44.0.tar.gz
tar zxvf curl-7.44.0.tar.gz
cd /opt/curl-7.44.0
./configure --with-ssl=/opt/openssl-1.0.1g --with-zlib=/opt/zlib-1.2.8 && make && make install
或者
./configure --with-zlib=/opt/zlib-1.2.8 --with-ssl=/usr/local/ssl && make && make install
--with-openssl=/usr/local/ssl --with-libs=/usr/local/ssl
ldd $(which curl)
ln -s /usr/local/ssl/lib/libcrypto.so /usr/local/lib/libcrypto.so.1.0.0
cd /opt/php-5.6.12/ext/curl
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-curl=/opt/curl-7.44.0
make && make install
编译oci php扩展
rpm -ivh oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
配置库路径 libsqlplus.so
vim /etc/ld.so.conf
/usr/lib/oracle/12.1/client64/lib/
ldconfig
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export ORACLE_BASE=/usr/lib/oracle/12.1
export PATH=$ORACLE_HOME/bin:$PATH:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
source /etc/profile
cd /opt/php-5.6.12/ext/oci8
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
/*******************************************Mysql********************************/
mysql
wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.44.tar.gz
groupadd mysql
useradd -r -g mysql mysql
##此处本来只应该装客户端
cd /usr/local/Downloads
tar -zxvf mysql-5.5.44.tar.gz
cd mysql-5.5.44
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
make && make install
mkdir /usr/local/mysql/etc/
cp support-files/my-large.cnf /usr/local/mysql/etc/my.cnf
vim /usr/local/mysql/etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/run/mysqld/mysqld.sock
character_set_server = utf8
slow_query_log = 1
log-error = /usr/local/mysql/log/mysql_error.log
pid-file = /usr/local/mysql/run/mysql.pid
default-storage-engine=MyISAM
user = mysql
open_files_limit = 65535
max_connections = 5000
max_connect_errors = 6000 #出错锁定host
back_log = 600 #连接队列的最大值
skip-name-resolve #关闭反向域名解析
innodb_file_per_table = 0 #innodb表不共享一个文件
interactive_timeout = 120
wait_timeout = 120 #连接过期秒数
thread_cache_size = 32 #连接词空闲线程数
tmp_table_size = 56M
max_heap_table_size = 56M
long_query_time = 3
log-bin = /var/www/log/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
[client]
socket = /var/run/mysqld/mysqld.sock
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local/mysql
chown -R mysql . //更改所有文件的所有者为mysql
chgrp -R mysql . // 更改所有文件的所属组为mysql
2. mysql 初始化安装 执行以下命令 //以mysql的身份执行scripts/mysql_install_db脚本
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--user=mysql \
--datadir=/usr/local/mysql/data
chown -R root . //再将所有文件的所有者改为root
chown -R mysql data //其中要将data目录及其子文件的所有者改为mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql/data
cp /etc/my.cnf /etc/my.cnf_bak
cp /usr/local/mysql/etc/my.cnf /etc/my.cnf
mkdir /var/run/mysqld
chmod -R 777 /var/run/mysqld
mkdir /usr/local/mysql/run
chmod -R 777 /usr/local/mysql/run
/usr/local/mysql/bin/mysqld \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--plugin-dir=/usr/local/mysql/lib/plugin \
--user=mysql \
--log-error=/usr/local/mysql/log/mysql_error.log \
--pid-file=/usr/local/mysql/run/mysql.pid \
--socket=/var/run/mysqld/mysqld.sock \
--port=3306 &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
客户端
yum install mysql
update user set password=passworD("wyj_2015") where user='root';
update user set host='%' where user='root';
flush privileges;
/*******************************************php*********************************/
wget http://cn2.php.net/distributions/php-5.6.12.tar.gz
opcash http://php.net/manual/zh/opcache.installation.php
tar zxvf php-5.6.12.tar.gz
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/conf \
--with-fpm-user=nobody \
--with-fpm-group=nogroup \
--enable-fpm \
--enable-bcmath \
--with-curl \
--with-mcrypt \
--with-freetype-dir \
--enable-mbstring \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql=/usr/local/mysql \
--with-openssl \
--with-imap-ssl \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir=/usr/lib/ \
--with-png-dir=/usr/lib/ \
--enable-exif \
--enable-zip \
--with-zlib \
--with-xsl \
--with-gettext \
--enable-intl \
--with-xmlrpc \
--enable-xml \
--enable-ftp \
--with-pear \
--enable-sockets \
--enable-gd-native-ttf \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--with-mhash \
--enable-inline-optimization \
--with-curlwrappers \
--enable-mbregex \
--enable-opcache \
make && make install
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
##最小权限
ROOT="/var/www/html"
chown -R nobody:nobody $ROOT
chmod a-wxr -R $ROOT
chmod u+xr -R $ROOT
chmod u+rw -R $ROOT/serverConfig
chmod u+rwx -R $ROOT/Runtime
chmod u+rxw -R $ROOT/Uploads
chmod u+rw -R $ROOT/crontab
chmod u+wrx -R $ROOT/Public
chmod u+rw -R $ROOT/serverConfig
chown -R ftp:ftp $ROOT/ftp
chmod u+rw -R $ROOT/ftp
#session
mkdir -p /usr/local/php/sess/weijiaoyun
chown nobody:nobody /usr/local/php/sess/weijiaoyun
chmod a-wrx -R /usr/local/php/sess/weijiaoyun
chmod u+wr -R /usr/local/php/sess/weijiaoyun
/*********************************************启动命令***************************/
pkill php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
chown -R nobody:nobody /usr/local/php/sess
chown nobody:nobody /dev/shm/sess/weijiaoyun
chmod u+wr -R /usr/local/php/sess/weijiaoyun
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #平滑重启 推荐
kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid` #平滑重启日志 推荐
pkill nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload
chown -R nobody:nobody /dev/shm
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` #平滑重启 推荐
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` #平滑重启日志 推荐
pkill mysqld
/usr/local/mysql/bin/mysqld \
--defaults-file=/usr/local/mysql/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--plugin-dir=/usr/local/mysql/lib/plugin \
--user=mysql \
--log-error=/usr/local/mysql/log/mysql_error.log \
--pid-file=/usr/local/mysql/run/mysql.pid \
--socket=/var/run/mysqld/mysqld.sock \
--port=3306 &
不保存历史
sed -i 's/HISTSIZE\=3000/HISTSIZE\=4/g' /etc/profile
source /etc/profile
传输命令
scp -i /root/wjyRsa -P 54321 -r /var/www/testscp 119.29.38.43:/var/www/
scp -i /root/devRsa -P 54321 -r /opt/curl-7.44.0 119.29.11.29:/opt/curl-7.44.0
/********************************系统工具**************************************/
yum -y install vim
yum install fonts-chinese.noarch
添加库文件路径
vim /etc/ld.so.conf
ldconfig
#滞后
--with-oci8 \
apparmor_parser -R /etc/apparmor.d/usr.sbin.tcpdump
tcpdump -i lo -w /var/www/logs/php-fpm2
/usr/sbin/tcpdump -i eth0 -w /var/www/logs/tcpdump7
yum -y install sysstat
sar -n EDEV 2 10
sar -n SOCK 2 10
sar -r 6 #men
sar -u 6 #cpu
top -p pid
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
Linux查看网络端口对应的程序
lsof -i :80
netstat -a |grep LISTEN |grep -v unix
ps -aux | sort -k4nr
ps -aux | grep -E "sap|USER"
#innode
df -i
#innode 大小
dumpe2fs -h /dev/vdb2 | grep "Inode size"
查看 进程的详细内存
pmap -q php-fpmp的pid
/**********************配置文件备份*******************************/
/usr/local/mysql/etc/my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/run/mysqld/mysqld.sock
character_set_server = utf8
slow_query_log = 1
log-error = /usr/local/mysql/log/mysql_error.log
pid-file = /usr/local/mysql/run/mysql.pid
default-storage-engine=MyISAM
user = mysql
thread_concurrency = 2
open_files_limit = 65535
max_connections = 5000
max_connect_errors = 6000
back_log = 600
skip-name-resolve
innodb_file_per_table = 0
interactive_timeout = 120
wait_timeout = 120
log-bin = /var/www/log/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
cat /usr/local/php/etc/php.ini
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
open_basedir = "/tmp/:/var/www/html:/var/www/task/cli/:/var/www/tasks/test_data/";
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 256M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 100M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
cgi.fix_pathinfo=1
file_uploads = On
upload_max_filesize = 100M
max_file_uploads = 20
upload_tmp_dir=/tmp
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[Phar]
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[opcache]
zend_extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
[Session]
session.save_handler = files
session.save_path = "1;/usr/local/php/sess/weijiaoyun"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
[curl]
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/curl.so"
cat /usr/local/php/etc/php-fpm.conf | grep -v '^;' | grep -v '^$'| less
[global]
error_log = /var/log/php/php-fpm.log
log_level = notice
rlimit_files = 65535
rlimit_core = 0
pid = run/php-fpm.pid
[www]
user = nobody
group = nobody
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 50
pm.start_servers = 40
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 1000
pm.status_path = /status
request_terminate_timeout = 30
rlimit_files = 655360
rlimit_core = 0
security.limit_extensions = .php .html
php_admin_value['date.timezone'] = 'Asia/Shanghai'
cat /usr/local/nginx/conf/nginx.conf | grep -v '^#' | grep -v '^$'| less
user nobody nobody;
worker_processes 2;
worker_rlimit_nofile 65353;
events {
worker_connections 65353;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6].";
server_names_hash_bucket_size 128;
client_max_body_size 100m;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
include vhost/*.conf;
}
cat /usr/local/nginx/conf/vhost/dev.xcoach.cn.conf | grep -v '^#' | grep -v '^$'| less
server {
listen 80;
server_name 119.29.11.29;
root /var/www/html;
index index.php index.html;
large_client_header_buffers 4 16k;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
location / {
index index.htm index.html index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_read_timeout 150;
include /usr/local/nginx/conf/fastcgi_params;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /var/www/html/$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
location /ngstatus {
stub_status on;
access_log off;
}
location /status {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
location ~* \.(htaccess|inc|conf)$ {
deny all;
}
location ~ /(sql|Data|Uploads|ftp)/.*\.(php|php5)?$ {
deny all;
}
#location ^~ /Runtime {
# deny all;
#}
access_log logs/dev.xcoach.cn.access.log;
error_log logs/dev.xcoach.cn.error.log;
}
/*************************************定时程序***************************/
* * * * * /bin/sh /var/www/tasks/defend_ddos/defend_ddos.sh &
*/10 * * * * /var/www/tasks/ftp/ftp_get.sh "school" "username" "password" "/var/www/html/ftp/userdata" "/userdata/*.data" &
*/10 * * * * /usr/local/php/bin/php -q /var/www/tasks/cli/cliApiBandRelation.php &
#59 * * * * /var/www/tasks/data_docking/doching.sh 121.41.74.208 youanbao PPla@0155 yabsz 3306 &
*/1 * * * * /usr/local//qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
0 0 * * * bash /var/www/task/nglog_bak/nglog_bak.sh &
/*************************************************定时程序***********************************************************/
/***************************************其他************************/
保证每天多少PV的并发连接数的计算公式是:
并发连接数= PV / 统计时间(一天是86400) * 页面衍生连接次数 * http响应时间 * 因数(5) / web服务器数量
保证4千万PV的并发连接数:
(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接数
10PV的并发连接数:
(100000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 1台Web服务器 = 289连接数
ab.exe -n2000 -kc2000
svn
svn delete svn://119.29.11.29/weijiaoyun/Public -m "delete Public"
svn import -m 'reimport' /var/www/html/Public svn://119.29.11.29/weijiaoyun/Public
vim ignore.txt
Application/User/Conf/config.php
Application/Common/Conf/config.php
Runtime
Uploads
svn propset svn:ignore -F ignore.txt .
svn proplist
svn propget svn:ignore
ngnix无法打印日志 tail -f 没有磁盘空间 增大max_user_watches 参考 http://www.51know.info/system_security/inotify.html
echo '17000' > cat /proc/sys/fs/inotify/max_user_watches
批量替换 参考 http://php.net/manual/zh/language.exceptions.php (jim at anderos dot com)
grep 'throw new Exception' /var/www/ceshi/ -rl | xargs sed -i 's/throw new Exception/throw new \\Exception/g'
sed -i 's/throw new Exception/throw new \\Exception/g' `grep 'throw new Exception' /var/www/ceshi/ -rl`
错误日志分析
error_log="/usr/local/nginx/logs/weijiaoyun_error.log"
deny_ip_arr=`cat $error_log | grep -iE "referrer: \"http:\/\/123.249.24.233\/POST_ip_port.phpAccep" | sed 's/\(.*\)\(client: \)\(.*\)\(, server:.*\)/\3/g'`
for ip in $deny_ip_arr
do
exist=`cat /etc/sysconfig/iptables| grep $ip`
if [ -z "$exist" ]
then
/sbin/iptables -A INPUT -s $ip -j DROP
/sbin/iptables -I INPUT -s $ip -j DROP
/sbin/iptables-save > /etc/sysconfig/iptables
fi
done
PHP-FPM master进程可以理解以下信号
INT, TERM 立刻终止 QUIT 平滑终止 USR1 重新打开日志文件 USR2平滑重载所有worker进程并重新载入配置和二进制模块
php-fpm 关闭:kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
/**********************************************************其他******************************************************/
/****************服务优化 只开启必要的服务,提高安全性和性能********************/
###以下服务是必须的必须开启 其他可以尝试关闭
安装完Linux之后,以下服务是必须的必须开启,没列出的服务可关闭
acpid #高级控制电源管理接口
crond #定时执行任务
haldaemon #必须开启,否则可能导致控制台键盘鼠标无法使用
hidd #同上
irqbalance #支持多cpu中断,必须开启
kudzu #检测硬件变化时自动进行配置
lvm2-monitor #用于监测LVM状态
messagebus #Linux系统进程间通讯的关键服务
mdmonitor #监测软RAID健康状态 即使没有使用软RAID, 也强烈建议启用此服务
mdmpd #同上,即使没有多路径存储设备,也强烈建议启用之
network #网络支持
readahead_early #预先加载特定的应用程序到内存中以提供性能
readahead_later #同上
smartd #硬盘故障自动检测
sshd
syslog
klogd #如果服务列表中存在,则必须开启
提示:配置服务可使用ntsysv工具,比较方便
其它强烈建议开启的服务 iptables
/**********************************服务优化 只开启必要的服务,提高安全性和性能*************************************/
/*************************************日志************************************/
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
dmesg | grep IDE # 查看启动时IDE设备检测状况
route -n # 查看路由表
/**************************************参考***********************/
生产服务器环境最小化安装后 Centos 6.5优化配置备忘 http://zhangxugg-163-com.iteye.com/blog/1843724
Centos 6.5优化配置 http://www.lvtao.net/server/centos-server-setup.html
inotify: http://www.51know.info/system_security/inotify.html
Linux(Centos )的网络内核参数优化来提高服务器并发处理能力 http://blog.csdn.net/shaobingj126/article/details/8549494
日志 :http://www.centoscn.com/CentosSecurity/CentosSafe/2014/0304/2490.html
linux下使用tc模拟网络延迟和丢包 http://blog.csdn.net/duanbeibei/article/details/41250029
/*****************************参考***********************************/