admin管理员组

文章数量:1567283

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优化

主从复制:

主服务器:

  1. 修改mysql配置,(#开启二进制日志,server-id)
  2. 重启mysql,创建用于同步的用户账号
  3. 查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):

从服务器:

1.修改mysql配置

同样找到myf配置文件,添加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之后省去了登录的过程,方便了用户访问系统资源。

本文标签: 面试题工程师Linux