1.Nginx反向代理,负载均衡,动静分离,工作原理及优化
nginx配置反向代理。
vim Nginx.conf
Server模块中配置
Listen 80
Server_name ip;
在server段里面的location加上proxy_pass http://ip:端口;
Nginx配置完成后重启一下nginx。
配置代理多个网站及服务
配置多个反向代理实现方式,是通过不同的端口代理访问。这里复制一个server段,将两个server段nginx的端口更改,使用nginx的不同端口访问。
Server1配置:
listen *:端口;>>>>多个反向代理使用不同端口
Server_name ip;>>>>注释掉,使用端口访问
在location 里面的proxy_pass 配置Tomcat1,ip 加Tomcat端口
Server2配置:
listen *:端口;>>>>多个反向代理使用不同端口
Server_name ip;>>>>注释掉,使用端口访问
在location 里面的proxy_pass 配置Tomcat2,ip 加Tomcat端口
负载均衡:
使用两台服务器,分别安装nginx 和通Tomcat,端口号分别为8080 和8081,
通过在nginx的upstream参数中添加应用服务器IP后添加指定参数,在location块中配置动态组名称,在访问网页的时候就会通过upstream中的配置项将指令分发给服务器。
动静分离:
将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
工作原理:Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相·应的工作。
优化:3.网络IO事件模型优化4.隐藏软件名称和版本号5.防盗链优化6.禁止恶意域名解析7.禁止通过IP地址访问网站10.严格设置web站点目录的权限 11.HTTP请求方法优化
2.Mysql主从复制,主从复制的原理,读写分离,读写分离的原理,mysql优化
主从复制:
主服务器:
- 修改mysql配置,(#开启二进制日志,server-id)
- 重启mysql,创建用于同步的用户账号
- 查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):
从服务器:
1.修改mysql配置
同样找到my.cnf配置文件,添加server-id
2.重启mysql,打开mysql会话,执行同步SQL语句
3.启动slave同步进程:
读写分离:
首先在主mysql上面建一个授权用户稍后给amoeba使用,1.通过安装amoeba,修改dbserver.xml配置文件,修改26行左右,指定mysql账户名称和密码,指定mysql主从的IP。2.修改amoeba.xml配置文件,修改amoeba代理的账号和密码,修改120左右的调用配置,然后实现读写分离。
mysql的读写分离的基本原理是:让master(主数据库)来响应事务性操作,让slave(从数据库)来响应select非事务性操作,然后再采用主从复制来把master上的事务性操作同步到slave数据库中。
mysql优化:
1.选择合适的存储弓擎: InnoDB
2.保证从内存中读取数据。将数据保存在内存中
3.定期优化重建数据库
4.降低磁盘写入操作
5.提高磁盘读写速度
6.充分使用索引
7.分析查询日志和慢查询日志
Mysqldump备份
mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
3.Tomcat配置文件有哪些,优化
Tomcat目录:conf bin logs webapps work lib temp
配置文件一般都在conf文件夹里,主要有server.xml,context.xml,tomcat_user.xml,web.xml四个常用配置文件,server主要是服务器设置的,例如端口设置,路径设置。context里设置tomcat数据源,用来连接数据库。tomcat_user主要是用户名和密码的设置。web是默认首页等等之类的设置。
bin/catalina.bat/sh,配置内存
tomcat优化:
句柄连接数,最大并发数,线程数,请求超时时间,禁止tomcat manager管理入口
关闭shutdown端口
4.Redis作用,应用场景
作用:
主要用Redis实现缓存数据的存储,可以设置过期时间.对于一些高频读写、临时存储的数据特别适合.
应用场景:
缓存 分布式会话 分布式锁 最新列表 消息系统
5.Zookeeper配置文件叫什么,作用是什么
conf下zoo_sample.cfg修改为Zoo_cfg
作用:分布式协调通知 加强集群稳定性 加强集群持续性 保证集群有序性 保证集群高效
注册中心
服务提供方:针对所提供的服务到注册中心发布。
服务消费方:到服务中心订阅所需的服务。
对于任何一方,不论服务提供方或者服务消费方都有可能同时兼具两种角色,即需要提供服务也需要消费服务。
6.Lvs工作原理是什么,有哪些工作模式
→1.LVS调度器收到目标地址为VIP的请求包后,将MAC地址改成RS(真正的服务器)的MAC地址。并通过交换机(链路层)发给RS。
2.RS的链路层收到请求包后,往上传给IP层。IP层需要验证请求的目标IP地址,所以RS需要配置一个VIP的 loopbak device(策略文件)。这样RS的IP层收到报文后,会往上递交给传输层,之所以配置成loopbak device,是因为loopbak device 对外不可见,不会跟LVS的VIP冲突。
3.RS处理完成后,将应答包直接返回给客户端。
工作模式:
LVS-DR,LVS-NAT,LVS-FULLNAT,LVS-TUN
7.Keepalived作用,怎么实现负载均衡
检查web服务器的状态,如果有一台web服务器/mysql服务器宕机或故障,keepalived将故障节点从系统中剔除,当故障恢复的时候自动加入服务器集群中,非常智能化,只需要手动修复坏的节点即可。
负载均衡步骤:
1、安装master组件和依赖包(keepalive+lvs)
2、备份keepalived配置文件
3、编辑keepalived配置文件
4、开启路由转发
5、重启keepalived服务并设置开机自启
主从同样步骤,修改keepalived.conf时state主从分别修改为master和backup。
在web1和web2服务器上安装nginx,并修改内核参数,然后添加虚拟主机IP。
8.Rabbitmq作用,为什么使用(应用场景)
消息队列,用在分布式系统存储转发消息
应用场景:异步处理,应用解耦,流量削峰
9.Haproxy参数优化 作用
长连接超时时间
客户端超时时间
守护进程模式
作用:高可用,负载均衡和用于TCP和基于http的应用程序代理
优点:
HAProxy支持数以万计的 并发连接。
同时可以保护你的web服务器不被暴露到网络上。
10.MongoDB是什么数据库,优化参数有哪些
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写
MongoDB优化:
1.cachesizeGB(缓存大小) 按配额的60%左右配置即可
2.oplogsizeMB (固定集合) 设置为可用disk空间的5%
3.启用Log Rotation日志切换 防止MongoDB的log文件无限增大,占用太多磁盘空间,使用Log Rotation并及时清理历史日志文件
4.stack size (连接内存优化) Stack设置小一点,比如说1024
5.MongoDB打开文件数优化 设置文件打开描述数量
11.Zabbix作用是什么 可以监控什么,优化有什么,工作原理
Zabbix作用:监控网路主机
监控:CPU负荷 内存使用,磁盘使用,日志监视,端口监视,网络状态,
zabbix优化:
1.轮询器实例数量 2.不可达主机 3.HTTP 轮询器子进程实例个数 4.缓存大小5.历史缓存数据大小 5.trappers进程实例数量
工作原理:
Agent安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)。
12.VMware
13.Apache配置文件叫什么,优化有哪些
1. 移除不用的模块。2将缓存放在独立的磁盘3.使用持久连接4.不要设置KeepAliveTimeout太高 5.提高写入缓冲器( Write Buffer)大小6.提高最大打开文件7.频繁访问的数据设置缓存。
14.NFS作用
网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。