大厂linux面试题攻略四之Linux网络服务(二)

news2024/9/9 7:28:38

 五、Linux网络服务-Apache优化

1.请写出工作中常见的Apache优化策略

Apache服务器优化是提升网站响应速度和稳定性的重要手段。在工作中,常见的Apache优化策略包括以下几个方面:

1. 启用压缩技术

  • Gzip压缩:使用Gzip压缩技术可以减少服务器传输的数据量,从而提高网页加载速度。Gzip压缩是Web服务器中最常用的压缩技术之一,可以在Apache配置文件中启用。
  • 配置选项:在Apache的配置文件(如httpd.conf)中,通过添加相关指令来启用Gzip压缩,并指定需要压缩的文件类型(如HTML、CSS、JavaScript等)。

2. 调整KeepAlive参数

  • KeepAlive功能:启用KeepAlive可以减少TCP连接的建立和关闭次数,因为每个TCP连接可以处理多个HTTP请求。这在高并发场景下尤为有用。
  • 参数调整:通过调整KeepAliveTimeout(保持连接的最大时间)和MaxKeepAliveRequests(一个连接内允许的最大请求数)等参数来优化KeepAlive的性能。

3. 使用缓存技术

  • 静态文件缓存:启用静态文件缓存可以减少对静态资源(如图片、JavaScript文件、CSS文件等)的重复请求。可以使用Apache的mod_cachemod_disk_cache等模块来实现。
  • 页面缓存:通过配置Apache的缓存头信息(如ExpiresCache-Control),可以告诉浏览器缓存页面内容,从而减少对服务器的请求。

4. 调整工作模式和线程池参数

  • 工作模式:Apache支持多种工作模式(如Prefork、Worker、Event等),每种模式适用于不同的场景。根据服务器的硬件配置和网站的特点选择合适的工作模式。
  • 线程池参数:在Worker和Event模式下,可以通过调整线程池的大小和最大请求数量等参数来优化性能。

5. 禁用不必要的模块

  • 减少内存消耗:Apache默认加载了很多模块,但并非所有模块都是必需的。通过禁用不必要的模块,可以减少内存消耗和加载时间,从而提高性能。
  • 编辑配置文件:在Apache的配置文件(如httpd.confmodules.conf)中,通过注释掉不必要的LoadModule指令来禁用模块。

6. 使用CDN加速

  • CDN服务:CDN(内容分发网络)可以将网站的静态资源分布到多个节点上,从而加快用户访问速度。使用CDN服务可以显著降低服务器的负载和响应时间。

7. 更新Apache到最新版本

  • 版本更新:Apache不断发布新版本以修复已知漏洞和引入新功能。定期更新Apache到最新版本可以确保服务器的安全性和性能。

8. 隐藏Apache版本号

  • 安全性提升:隐藏Apache的版本号可以防止黑客通过查询版本号来找到潜在的漏洞进行攻击。
  • 配置修改:在Apache的配置文件中修改相关指令以隐藏版本号。

9. 防盗链

  • 防止资源被盗用:防盗链可以防止其他网站盗链本站点的图片或视频等资源,从而减少服务器的负载和带宽消耗。
  • 配置选项:在Apache的配置文件中通过添加相关指令来实现防盗链功能。

10. 日志的轮替

11. 美化错误页面

12.禁止解析PHP

综上所述,Apache的优化策略涉及多个方面,包括启用压缩技术、调整KeepAlive参数、使用缓存技术、调整工作模式和线程池参数、禁用不必要的模块、使用CDN加速、更新Apache到最新版本、隐藏Apache版本号和防盗链等。通过实施这些优化策略,可以显著提升Apache服务器的性能和安全性。

参考:设置Apache的日志轮替和切割规则,防止日志过大
美化错误页面,将错误页面重定向到首页或指定页面
屏蔽Apache的版本等信息,防止别人获取Apache的相应版本
配置静态缓存,减少对服务器的访问压力
禁止解析指定目录下的页面程序,比如upload,禁止解析用户上传的脚本文件

2.有哪些技术可以提高网站的安全和效率?

CDN(Content Delivery Network,内容分发网络)是一种分布式的网络架构,通过部署在全球各地的多个服务器节点,将内容快速地传送给用户。CDN技术旨在提高网站的访问速度、可用性和安全性。

CDN的工作原理如下:

  1. 缓存:CDN节点会缓存静态内容,如图片、CSS、JavaScript文件等,将其存储在离用户较近的服务器上。当用户请求内容时,CDN会将缓存在节点上的静态内容直接返回给用户,而不用每次都从源服务器请求内容,从而提高访问速度。

  2. 路由选择:当用户发起请求时,CDN会根据用户的IP地址,选择离用户最近的节点来响应请求。通过就近接入,可以减少网络延迟和传输时间,提高访问速度。

  3. 负载均衡:CDN会根据节点的负载情况,将用户请求分发到负载较低的节点上,以平衡服务器的负载和提高可用性。

  4. 动态请求转发:对于动态内容,CDN节点会将请求转发给源服务器进行处理,然后将响应的内容缓存起来,以便下次有相同请求时可以直接返回缓存内容,提高访问速度。

  5. 安全防护:CDN可以提供一些安全防护措施,如DDoS攻击防护、SSL加密、WAF(Web应用防火墙)等,保护网站免受恶意攻击。

利用CDN技术,网站可以将静态资源部署到全球各地的节点上,使用户能够更快地访问这些内容。同时,CDN还可以减轻源服务器的负载,提高网站的可用性和安全性。

六、Linux网络服务-Nginx配置

1.Apache和Nginx各有什么优缺点,应该如何选择?

Apache的优缺点
优点:
Apache的rewrite功能比nginx的要强大
模块非常多,基本想要的功能都能找到模块
存在时间较长,文献较全,bug也相对较少
动静态解析都超稳定
缺点:
由于工作模式是同步阻塞型,导致资源消耗较高,并发能力较差

Nginx的优缺点
优点:
轻量级服务,比Apache占用更少的内存及资源
并发能力强,nginx 处理请求是异出非阻塞的,而apache 则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块产出迅速
缺点:
动态处理上需要使用fastcgi连接PHP的FPM服务,相比Apache不占优势

Apache和Nginx的选择
Nginx 适合做静态处理,简单,效率高
Apache 适合做动态处理,稳定,功能强
并发较高的情况下优先选择Nginx,并发要求不高的情况下两者都可以,规模稍大的
可以使用Nginx作为反向代理,然后将动态请求负载均衡到后端Apache上。

2.为什么Nginx的并发能力强,资源消耗低?

同步和异步:
同步:小明收到快递将送达的短信,在楼下一直等到快递送达
异步:小明收到快递将送迁的短信,小明不会下楼去取,而是快递小哥到楼下后,打电话通知小明,然后小明楼取快递

阻塞和非阻塞
阻塞:小明收到快递即将送达的信息后,什么事都不做,一直专门等快递
非阻塞:小明收到快递即将送达的信息后,等快递的时候,还一边敲代码边听歌,等着快递送达的消息。

Apache是同步和阻塞,Nginx是异步和非阻塞

答案参考

Nginx以异步非阻塞方式工作
客户端发送request,服务器分配work进程来处理
能立即处理完的,处理后work进程释放资源,进行下一个request的处理
不能立即处理完的work进程注册返回事件,然后接着去处理其他request
当之前的request结果返回后,触发返回事件,由空闲work进程接着处理,通过这种快速处理,快速释放请求的方式,达到同样的配置可以处理更大并发量的目的

七、Linux网络服务-Nginx进阶

1.写出几个Nginx的常用模块,并描述其功能

http_ssI_module:实现服务器加密传输的模块,部署完成后可使用https://协议进行数据传输,保证数据传输过程的安全.

http_image_filter_module:
通过该模块可以实现图片裁剪,将过大的图片裁剪为指定大小的图片,生成缩略图,保证传输速率,该选项默认不开启,需要人为指定
image_filter resize $h $w;

http_rewrite_module:
Nginx的地址重写模块,功能同Apache的一样,可以实现通过正则匹配来完成条件判断,然后进行域名或url的重写。例如:多域名、http -> https

http_proxy_module:
Nginx的反向代理功能,由于Nginx的高并发特性,很多时候我们都选择使用Nginx作为网站的前置服务器,一般会和upstream模块一起使用,完成压力分摊工作。

http_upstream_module
Nginx的负载均衡模块,一般和http_proxy模块一起使用,用来对后台服务器的任务调度及分配,分配原则可以通过算法进行控制。常见模式: Nginx+Apache、Nginx+Tomcat

2.请解释Nginx是如何连接PHP进行页面解析的

Nginx是一个高性能的Web服务器,它可以通过多种方式与PHP进行页面解析。

  1. FastCGI:Nginx可以通过FastCGI协议与PHP-FPM(FastCGI Process Manager)进行通信。PHP-FPM是一个单独的进程管理器,将PHP解析器与Nginx服务器分离。当Nginx收到一个来自客户端的请求时,它会将请求发送给PHP-FPM进程池中的一个空闲进程来处理。PHP-FPM进程将解析PHP代码并生成HTML响应,然后将响应发送回Nginx,最后由Nginx将响应返回给客户端。

  2. PHP插件:Nginx也可以通过加载PHP插件来直接解析PHP代码。这种方式需要在Nginx的配置文件中启用PHP插件,并配置正确的路径和参数。当Nginx收到一个PHP请求时,它会调用PHP插件来解析PHP代码并生成HTML响应。然后由Nginx将响应返回给客户端。

无论是使用FastCGI还是PHP插件,Nginx与PHP之间的连接是通过网络套接字进行的。Nginx将请求发送给PHP解析器,PHP解析器将生成的响应发送回Nginx,然后由Nginx将响应返回给客户端。这种方式可以有效地将动态生成的内容与静态文件一起提供给客户端,并提供高性能和可扩展性的Web解决方案。

1.Nginx支持fastCGI功能(默认支持)
2.PHP编译时开启FPM服务(编译时指定)
3.在Nginx配置文件中添加匹配规则(匹配后缀是php)

3.请描述Nginx和Tomcat之间的数据传输过程

当请求到达Nginx服务器时,Nginx作为反向代理服务器会首先接收到该请求。然后,Nginx会根据配置文件中的规则将请求转发给后端的Tomcat服务器。

数据传输的过程如下:

  1. 客户端发送请求到Nginx服务器。
  2. Nginx服务器接收到请求并根据配置文件中的规则确定将请求转发给哪个Tomcat服务器。
  3. Nginx向Tomcat服务器发起连接,并将客户端的请求内容按照HTTP协议重新打包并发送给Tomcat服务器。
  4. Tomcat服务器接收到请求,并解析HTTP协议中的请求头和请求体数据。
  5. Tomcat服务器处理请求,执行相应的逻辑操作,并生成响应数据。
  6. Tomcat服务器将响应数据按照HTTP协议打包,并发送给Nginx服务器。
  7. Nginx服务器接收到Tomcat服务器的响应数据,并将响应数据按照HTTP协议打包,并发送给客户端。
  8. 客户端接收到响应数据,并进行相应的处理。

整个过程中,Nginx起到了反向代理的作用,将客户端请求转发给后端的Tomcat服务器,并将Tomcat服务器的响应传递给客户端。这种架构可以提高系统的性能、可靠性和灵活性。

八、Linux网络服务-http状态码

1.请写出几个常见的HTTP状态码,并解释出现原因

http状态码分类
HTTP状态码是五个不同的类别:
1**:信息,服务器收到请求,需要请求者继续执行操作
2** :成功,操作被成功接收并处理
3**:重定向,需要进一步的操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求
5**:服务器错误,服务器在处理请求的过程中发生了错误
五个类别的响应状态代码的第一个数字是唯一代表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费【2024】springboot 宠物医院微信小程序的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Python(关于属性和类详细代码解释)

动态绑定属性 class Student:# 类属性:定义在类中,方法外的变量school 北京xxx教育print(type(school)) # 定义在类里面所以属性不变# 类属性初始化方法def __init__(self, xm, age): # xm,age是方法的参数,是局部变量,xm,age…

解决Centos不支持docker命令行tab提示问题!!!

一、CentOS不支持Docker Tab提示 在使用CentOS操作系统时,有些用户可能会遇到不能自动补全Docker命令的问题。这是因为CentOS默认不支持Docker Tab提示功能,需要手动配置才能实现。在这篇科普文章中,我们将介绍如何解决这个问题,…

Springer旗下中科院2区TOP,国人优势大!

关注GZH【欧亚科睿学术】,第一时间了解期刊最新动态! 1 通信网络类 【期刊简介】IF:4.0-5.0,JCR1区,中科院3区 【出版社】ELSEVIER出版社 【检索情况】SCIE&EI双检,CCF-C类 【征稿领域】通信网络的…

这本vue3编译原理开源电子书,初中级前端竟然都能看懂

前言 众所周知vue提供了很多黑魔法,比如单文件组件(SFC)、指令、宏函数、css scoped等。这些都是vue提供的开箱即用的功能,大家平时用这些黑魔法的时候有没有疑惑过一些疑问呢。 我们每天写的vue代码一般都是写在*.vue文件中,但是浏览器却只…

大模型面试之LoRA

LoRA的解释:一种高效微调预训练神经网络的方法 LoRA 解决的问题: 🔸 2021年初,微软与OpenAI合作探索GPT-3的商业可行性。 🔸 发现仅仅通过提示(prompting)不足以完成生产任务,例如…

C++:标准模板库(STL)介绍

1.STL基本概念 从C到C,C语言的核心优势之一就是便于软件的重用。前面我们提到过C程序的面向对象思想,即继承和多态、标准类库等可以实现重用。除此之外,通过泛型程序设计(generic programming)的思想,即模板机制以及标准模板库ST…

微软:警惕利用VMware ESXi进行身份验证绕过攻击

微软于7月29日发布警告,称勒索软件团伙正在积极利用 VMware ESXi 身份验证绕过漏洞进行攻击。 该漏洞被追踪为 CVE-2024-37085,由微软安全研究人员 Edan Zwick、Danielle Kuznets Nohi 和 Meitar Pinto 发现,并在 6 月 25 日发布的 ESXi 8.0 …

Vatee万腾平台:助力企业数字化转型的坚实伙伴

在数字化浪潮席卷全球的今天,企业数字化转型已成为不可逆转的趋势。面对这一挑战与机遇并存的时代,Vatee万腾平台凭借其深厚的行业洞察、先进的技术实力和丰富的实践经验,成为了众多企业数字化转型道路上的坚实伙伴。 一、定制化解决方案&…

锐捷RCNA | ARP协议原理与应用与DHCP协议原理及应用

一、ARP协议原理与应用 OSI参考模型将网络划分为7层,IP地址工作在第三层网络层中,MAC地址工作在第二层数据链路层。 在以太网发送IP数据包时,先封装网络层的包头再封装数据链路层的包头,由于在发送时只知道目标IP地址而不知道MA…

神经网络实现数字识别(机器学习)

我们有很多0到9的图片集,我们要训练一个网络来自动识别数字,我们有20*20的图像5000个。 把图片展平,这样每个记录就有400个特征,最后一列是标签值,1-9表示数字1-9;10表示数字0。数据集:ex_2/ex…

【设计模式:单例模式】

单例模式的特点: 单例类只允许一个实例单例类必须自己创造自己的唯一实例单例类必须给所有其他对象提供这一实例 单例模式底层如何实现: 私有化构造函数,类外部无法创造类对象,实现了单例类只允许有一个实例对象的特点类定义中含有…

vue3+g2plot之瀑布图

基础瀑布图 - 每月收支情况 效果预览: 核心代码: import {Waterfall } from @antv/g2plot;const data = [{type: 日用品, money: 120 },{type: 伙食费, money: 900 },{type: 交通费, money: 200 },{type: 水电费, money: 300 },{type: 房租, money: 1200 },{type: 商场消…

MyBatis批量更新:报错The error occurred while setting parameters

使用mybatis批量更新时,报以下错误。反复检查过mysql语句没有任何问题。而且本地可以正常执行,生产环境却报错。起初怀疑是数据表,把生产环境表导入本地测试后依然没有问题。数据表没问题就定位到数据库,先检查本地数据库链接与生…

家庭教育系列—剑桥通用英语五级考试介绍

文章目录 1. 背景介绍2. 详细介绍2.1 **KET(Key English Test):基础英语考试**2.2 **PET(Preliminary English Test):初级英语考试**2.3 **FCE(First Certificate in English)&#…

自定义类加载器 1.继承ClassLoader 2.findClass 3.defineClass

一、自定义类加载器 1.自定义 2.使用 总结:这种情况,由于loadClass会采用双亲委派机制,如果类已经被加载,那么就不会重复加载。 二、热部署的实现原理 使用loadClass,发现加载是同一个类 使用findClass实现&#xf…

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation 一、前言Abstract1 Introduction2 Related Work3 Methodology3.1 Preliminary of Latent Diffusion Models3.2 The model variants of Latte3.3 The empirical analysis of Latte3.3.1 Latent video c…

测试环境领域到测试环境产品

作者:攻心 去年之前,阿里巴巴的淘天集团测试环境是以领域方式运作:不局限测试环境治理本身,从测试模式方法论及用好测试环境思路引领集团测试环境治理。领域运作最难的是“统一思想”。业务进一步细分调整后,测试环境治…

Xilinx FPGA:vivado SPI实现FLASH通信

一、实验要求 要求使用SPI协议实现对flash芯片的页编程、读操作、页擦除等功能。 二、模块划分 大概的时序图: 三、程序设计 (1)接收端模块 timescale 1ns / 1ps module uart_rx(input sys_clk ,input …

Mongodb新增文档、查询文档、更新文档、删除文档

文章目录 1、新增文档1.1、进入容器1.2、向集合插入一个新文档1.3、查询文档1.4、向集合插入一个或者多个文档 2、查询文档2.1、查询年龄等于202.2、查询年龄是20的男性2.3、查询年龄是20或者性别是男2.4、查询年龄小于232.5、查询年龄小于等于232.6、查询大于等于232.7、查询年…