本文答案仅供参考,若有错误或更好的答案请留言说明
location /www.abc.com/refuse {
return 403;
}
[root@luomuqing ~]# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to 192.168.136.130:80
[root@luomuqing ~]#
系统
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载
headers-more-nginx-module 模块用于添加,修改,或者清除 请求/响应头
more_set_headers 用于添加、修改、清除响应头
more_clear_headers 用于清除响应头
more_set_input_headers 用于添加、修改、清除请求头
more_clear_input_headers 用于清除请求头
[root@luomuqing ~]# cat a.sh
#!/bin/bash
for Filename in $(ls -l |awk '$5 > 10240 {print $9}')
do
mv $Filename /tmp
done
软负载: nginx+keepalived
lvs+keepalived
硬负载: F5、A10
常见的web集群:
apache+tomcat;nginx+tomcat;lvs+nginx+tomcat
[root@luomuqing ~]# pwd
/usr/local/nginx/logs
[root@luomuqing ~]# ls
access.log error.log nginx.pid
[root@luomuqing ~]# cat access.log | grep "16/Jun/2020" | sed -n '/07:39:54/,/08:00:01/p' | awk '{print $1}' | sort | uniq -c | sort -t " " -k2 -n -r
8 192.168.1.4
[root@luomuqing ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@luomuqing ~]# crontab -l
0 6-12/2 * 11 * /usr/bin/httpd.sh
[root@luomuqing ~]#
FastDFS
解决了大数据量的存储和负载均衡问题,特别适合中小文件为载体的在线服务,比如在线相册,视频网站等等。 网盘社区,广告和应用下载的存储。
分布式文件系统:
优点: 定时备份,如果一台down掉,迅速切换到另一台。扩展能力强,能够保证文件系统的可用性,也能够保证数据的完整性和唯一性
缺点: 系统复杂程度较高,需要更多服务器
常见的分布式文件系统还有: GlusterFS, GoogleFS, TFS, OSS
[root@luomuqing ~]# netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
ESTABLISHED 3
CLOSING 2
[root@luomuqing ~]#
补充:
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
[root@luomuqing ~]# vim eck_nginx_log.sh
[root@luomuqing ~]# cat eck_nginx_log.sh
#! /bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
minute=$(date -d "1 minute ago" +"%Y%m%d-%H:%M")
mkdir -p $base_path/$log_path
echo $base_path/access.log
mv $base_path/access.log $base_path/$log_path/access_$minute.log
echo $base_path/$log_path/access_$minite.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
[root@luomuqing ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@luomuqing ~]# crontab -l
* * 1 * * eck_nginx_log.sh
[root@luomuqing ~]#
raid 名称 特点
raid0 提高读写性能,最少两块容量为N的硬盘,容量为2N
raid1 提高数据安全性,提高读取性能,不能提高写入性能,2003自带raid1功能,最少两块容量为N的硬盘,容量为N
raid10 先提高安全性,再提高性能,最少4块容量为N的硬盘,容量为2N,RAID10比RAID01在安全性方面要强(体现在容错率上)
raid01 先提高性能,再提高安全性,最少4块容量为N的硬盘,容量为2N
raid5 提升安全性,安全性低于raid10(三块盘的情况下),大文件读写没有优势,小文件读写能力低于raid10,最低三块盘,容量为2快盘
[root@luomuqing ~]# vim nginx_find.sh
[root@luomuqing ~]# cat nginx_find.sh
#!/bin/bash
find /picture/*.png* -type f -mtime +15 -exec rm {} \;
zabbix, prometheus, cacti ,nagios
特点略
做运维岗位带给你的改变:
1、可以认识更多的人,同时也能被更多的人认识, 对于一个喜欢沟通和交流的我来说,更能够在这个岗位上干的长久。
2、运维人员临场应变能力和处理突发事件的能力会随着工作经验的增长而增强。更容易养成未雨绸缪,思维上得到锻炼,考虑问题更全面,细致,透彻,且内心承受能来强大
3、运维能力不是高学历可以搞定的,需要的是勤奋努力,善于总结
其次: 运维不是单纯的运维维护,而是运维规范和规则的制定者以及安全运维规范的忠实维护者和践行者。
在工作中应该做什么?
1. 监控,报警,线上部署
2. 脚本自动化,工具自动化
3. 故障处理
要弄懂底层原理,比如监控: 任何的监控都是: 收集数据,存储数据,数据分析,数据指标展示,告警五个部分。理解了这个,对于任何监控你可以去分析,哪个模块是在分析数据,哪个模块是在收集数据,能不能用其他的代替。