最后整理

1> 脚本
 
1.awk扩展应用:分析Web日志的访问量排名,要求获得客户机的地址、访问次数,并且按照访问次数排名
 
分析:awk统计Web访问排名
在分析Web日志文件时,每条访问记录的第一列就是客户机的IP地址,其中会有很多重复的IP地址。因此只用awk提取出这一列是不够的,还需要统计重复记录的数量并且进行排序。
通过awk提取信息时,利用IP地址作为数组下标,每遇到一个重复值就将此数组元素递增1,最终就获得了这个IP地址出现的次数。
针对文本排序输出可以采用sort命令,相关的常见选项为-r、-n、-k。其中-n表示按数字顺序升序排列,而-r表示反序,-k可以指定按第几个字段来排序。
# awk '{ip[$1]++} END{for(i in ip) {print ip[i],i }}' /var/log/httpd/access_log  --->提取
# awk '{ip[$1]++} END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log | sort -n/r  --->排名
 
**********************
2.nginx日志切割
 
]# vim /usr/local/nginx/logbak.sh
#!/bin/bash
date=`date +%Y%m%d`
logpath=/usr/local/nginx/logs
mv $logpath/access.log $logpath/access-$date.log
mv $logpath/error.log $logpath/error-$date.log
kill -USR1 $(cat $logpath/nginx.pid)
]# crontab -e
03 03 * * 5  /usr/local/nginx/logbak.sh
 
也可以是php日志:
]# ls /var/log/php-fpm/
error.log  www-error.log
 
也可以是Tomcat日志
***********************
3.memcache数据库连接脚本
]# vim /usr/local/nginx/html/test.php
<?php
$memcache=new Memcache;               //创建memcache对象
$memcache->connect('192.168.2.5',11211) or die ('could not connect!!');
$memcache->set('key','test');         //定义变量
$get_values=$memcache->get('key');    //获取变量值
echo $get_values;
?>
 
4.认LVS健康检查脚本
]# vim check.sh
#!/bin/bash
VIP=192.168.4.15:80
RIP1=192.168.4.100
RIP2=192.168.4.200
 
while :
do
   for IP in $RIP1 $RIP2
   do
           curl -s http://$IP &>/dev/vnull
if [ $? -eq 0 ];then
            ipvsadm -Ln |grep -q $IP(能查到,即为真) || ipvsadm -a -t $VIP -r $IP(前面为真,后面不执行)
        else
            ipvsadm -Ln |grep -q $IP(能查到,即为真) && ipvsadm -d -t $VIP -r $IP(为真才删)
        fi
   done
sleep 1
done
 
***********************
2> nginx 优化
1.常见http状态码:
200 一切正常
301 永久重定向
302 临时重定向
401 用户名或密码错误
403 禁止访问(客户端IP地址被拒绝)
404 文件不存在
414 请求头过长
500 服务器内部错误
502 Bad Gateway
 
2.优化Nginx并发量
worker_processes  2; //进程,与CPU核心数量一致
events {
worker_connections 65535; //每个worker最大并发连接数(线程)
use epoll;
}
 
3.用户或组  硬限制或软限制 
vim /etc/security/limits.conf
#用户或组  硬限制或软限制  需要限制的项目 限制的值
*  soft nofile 100000
*  hard nofile 100000
 
4.优化Nginx数据包头缓存
http {
client_header_buffer_size    1k;  //默认请求包头信息的缓存    
large_client_header_buffers  4 6m;  //最大请求包头部信息的缓存个数与容量,生产环境4k足以
 
5.浏览器本地缓存静态数据
ocation ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    expires  30d; //定义客户端静态缓存时间为30天,一定要有;号
 
6.日志切割
 
7.对页面进行压缩处理
  http {...
   gzip on;        //开启压缩
   gzip_min_length 1000;  //小文件不压缩
   gzip_comp_level 4;     //压缩比率
   gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; //对特定文件压缩,类型参考mime.types
]# nginx -s reload
 
8.服务器内存缓存
http {
...
open_file_cache  max=2000  inactive=20s;
    open_file_cache_valid    60s;
    open_file_cache_min_uses 5;
    open_file_cache_errors   off;
//设置服务器最大缓存2000个文件句柄,关闭20秒内无请求的文件句柄
//文件句柄的有效时间是60秒,60秒后过期
//只有访问次数超过5次会被缓存
 
9.配置PHP使用memcached服务器共享Session信息(部署在后端web).
]# vim /etc/php-fpm.d/www.conf  //文件的最后2行
 
修改前效果如下:
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
//原始文件,默认定义Sessoin会话信息本地计算机(默认在/var/lib/php/session)
 
修改后效果如下:
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://192.168.2.5:11211"
//定义Session信息存储在公共的memcached服务器上,主机参数中为memcache(没有d)
//通过path参数定义公共的memcached服务器在哪(服务器的IP和端口)
]# systemctl restart php-fpm
 
9.部署varnish缓存服务器(5.2.1)
]# vim  /usr/local/etc/default.vcl
backend default {
  .host = "192.168.2.100";
  .port = "80";
 }
启动服务
]# nginx -s stop(如果占用的话)
]# varnishd -f /usr/local/etc/default.vcl
//varnishd命令的其他选项说明如下:
//varnishd –s malloc,128M  定义varnish使用内存作为缓存,空间为128M
//varnishd –s file,/var/lib/varnish_storage.bin,1G 定义varnish使用文件作为缓存
 
]# varnishlog  varnish日志
]# varnishncsa 访问日志
]# varnishadm  命令管理缓存页面
]# varnishstat 查看Varnish状态
 
***********************
3> Tomcat 优化
1.Tomcat的主要启动文件
]# ls /usr/local/tomcat
bin/       //主程序目录
lib/       //库文件目录
logs/      //日志目录  
temp/      //临时目录
work/      //自动编译目录jsp代码转换servlet
conf/      //配置文件目录
webapps/   //页面目录
]# ln -s /usr/local/tomcat/bin/startup.sh /sbin/
]# ln -s /usr/local/tomcat/bin/shutdown.sh /sbin/
私钥、证书存储路径为:/usr/local/tomcat/conf/cert
 
2.Tomcat配置文件详解、
组件类别:
    顶级组件     :位于整个配置的顶层,如server。
    容器类组件   :可以包含其它组件的组件,如service、engine、host、context。
    连接器组件   :连接用户请求至tomcat,如connector。
    被嵌套类组件 :位于一个容器当中,不能包含其他组件,如Valve、logger。
 
8080: http 1.1 connector,也就是接收处理http请求的端口,如果你只用一个tomcat处理所有请求,可以只使用这个connector。
8005: tomcat接受关闭指令的端口,比如你要关闭tomcat,这个接口会收到shutdown的指令,然后关闭所有后台线程。
8009: ajp connector,它一般用来设置tomcat集群。因为tomcat作为servlet容器,对于处理静态资源的能力不是很好,所以一般大点的项目都会在tomcat前面加个apache服务器,用来处理静态资源和负载均衡,通过预先设定的规则把动态请求通过ajp端口交给tomcat处理,这时可以只使用ajp connector。
8443:网页加密端口
 
 
 
4> DB
1.memcache
PORT="11211"
USER="memcached"
MAXCONN="1024"  //最大连接数
CACHESIZE="64"  //缓存64k

猜你喜欢

转载自www.cnblogs.com/luwei0915/p/10632394.html