httpd-2,2024最新Linux运维算法相关面试大

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

 access.log: 访问日志,其需要记录的内容需要自定义
 
 error.log: 错误日志

访问日志:CustomLog “/path/to/access_log_file” Format_Name #CustomLog自定义访问日志路径LogFormat Format_String Format_Name

%h: 客户端地址

%l: 远程登录名,通常为-

%u: 认证时的远程用户名,没有认证时为-

%t: 收到请求时的时间;

%r: 请求报文的起始行;

%>s: 响应状态码;

%b: 响应报文的长度,单位为字节

%{Header_Name}i: 记录指定请求报文首部的内容(value);

详情请参考:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

错误日志: ErrorLog

11、路径别名

  Alias /alias/ "/path/to/somewhere/"

意味着访问http://Server_IP/alias/时,其页面文件来自于/path/to/somewhere这个位置;
注意:前后路径要一致,结尾都有”/”或者都没有

12、设定默认字符集

    AddDefaultCharset  UTF-8

定义cgi脚本路径别名:

    CGI: Common Gateway Interface协议(执行某些文件时要以管理员的权限执行,已经很少被使用了)

13、CGI脚本路径别名

CGI: Common Gateway Interface协议(执行某些文件时要以管理员的权限执行,已经很少被使用了)

定义cgi脚本路径别名:

ScriptAlias /URL/ "/path/to/somewhere/"   #使用此种方法定义文件则被使用cgi协议执行或者显式使用execcgi

14、基于用户的访问控制

当你的网站或者站点的某个路径只想让你授权的用户访问时,就可以使用基于用户的访问控制。

虚拟用户:可以使用文件,SQL数据库或者ldap等机制进行认证。认证类型(auth):basic: 基本认证,帐号和密码明文发送;

digest:摘要认证,hash编程之后发送,大多浏览器不支持;

认证提供者(authentication provider):帐号和密码的存放位置

授权机制(authorization):根据什么进行授权

例:基于文件,做基本认证,根据用户和组进行授权

使用htpasswd命令生成认证库

htpasswd:
 
-c #第一次使用-c创建新文件,不是第一次不要使用此选项
-m #用户密码使用MD5加密后存放
-s #用户密码使用SHA加密后存放
-p #用户密码不加密
-d #禁用一个账户
-e #启用一个账户

[root@localhost fin]# htpasswd -c -m /etc/httpd/conf/.htpasswd feiyu     #第一次需要使用-c选项创建文件
New password: 
Re-type new password: 
Adding password for user feiyu
[root@localhost fin]# htpasswd -m /etc/httpd/conf/.htpasswd feiyu1
New password: 
Re-type new password: 
Adding password for user feiyu1

配置认证机制

 <directory "/www/htdocs/fin">
        Options None
        AllowOverride AuthConfig
        AuthType Basic
        AuthName "Private Area"
    #	AuthBasicProvider file                    #可以不用指,默认为文件
        AuthUserFile /etc/httpd/conf/.htpasswd     #所使用的认证文件
        Require valid-user      #允许文件中的所有合法账号
  	

访问界面如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基于组进行认证

先创建用户再创建组文件:

     组文件格式:
 
        组名: 用户1 用户2 用户3

    <directory "/www/htdocs/fin">
        Options None
        AllowOverride AuthConfig
        AuthType Basic
        AuthName "Private Area"
    #	AuthBasicProvider file
        AuthUserFile /etc/httpd/conf/.htpasswd
        AuthGroupFile /etc/httpd/conf/.htgroup      #所使用的组文件
        Require group GroupName
    </directory ">

15、虚拟主机

虚拟主机意即一个物理服务器提供多个站点,以前刚建站时使用的是阿里云的免费虚拟主机,我想应该就是基于此方法配置的。虚拟主机的实现方法有三种:

基于不同的IP实现不同的虚拟主机:变化IP

基于不同的port实现不同的虚拟主机:变化port

基于不同的FQDN实现不同的虚拟主机:变化ServerName的参数

配置使用虚拟主机:

(1)注释中心主机,并启用相关配置

[root@localhost http]# vim /etc/httpd/conf/httpd.conf
 
DocumentRoot "/var/www/html"     #注释中心主机
 
NameVirtualHost *:80    #使用基于域名的虚拟主机时需要启动此项,并且下面的配置与其保持一致,在 httpd-2.4 中不需要使用    

(2)基于ip的虚拟主机:

<VirtualHost 192.168.1.117:80>   
        ServerName www.feiyu1.com
        DocumentRoot "/var/www/html/feiyu1"
</virtualhost>
 
<VirtualHost 192.168.1.117:80> 
        ServerName www.feiyu2.com
        DocumentRoot "/var/www/html/feiyu2"
</virtualhost>

(3)基于端口的虚拟主机:

<VirtualHost 192.168.1.117:80>
        ServerName www.feiyu1.com
        DocumentRoot "/var/www/html/feiyu1"
</VirtualHost>

<VirtualHost 192.168.1.117:8080> ServerName www.feiyu2.com DocumentRoot “/var/www/html/feiyu2”

(4)基于域名的虚拟主机:

NameVirtualHost *:80
 
<VirtualHost *:80>
        ServerName www.feiyu1.com
        DocumentRoot "/var/www/html/feiyu1"
        CustomLog "/var/log/httpd/feiyu1-access_log" combined
</VirtualHost>
 
<VirtualHost *:80>
        ServerName www.feiyu2.com
        DocumentRoot "/var/www/html/feiyu2"
        CustomLog "/var/log/httpd/feiyu2-access_log" combined
</VirtualHost>

16、启用 https 协议

https是在http的基础上进行ssl/tls加密实现的结果,启用https固然更安全,不会存在流量劫持等风险,但使用https就不再是三次握手了,它会增加建立连接的时间。

http与https首次请求对比图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

http: 文本协议,80/tcphttps: 二进制格式的协议, 443/tcpSSL握手要完成的工作:

交换协议版本号

选择双方都支持的加密方式

对两端实现身份验正

密钥交换

SSL会话基于IP地址进行,不支持在基于FQDN的虚拟主机上实现,所以在只有一个公网IP的服务器上使用虚拟主机时,只能为一个站点使用https。

配置支持https:

(1)安装httpd支持ssl模块

[root@localhost ~]# yum install mod_ssl -y

(2)自建CA

[root@localhost ~]# cd /etc/pki/CA
[root@localhost ~]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
[root@localhost ~]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

(3)生成私钥

[root@localhost ~]# cd /etc/httpd/conf/
[root@localhost ~]# mkdir ssl
[root@localhost ~]# cd ssl
[root@localhost ~]# (umask 077; openssl genrsa -out httpd.key 1024)

(4)生成证书申请

[root@localhost ~]# openssl req -new -key httpd.key -out httpd.csr

(5)CA签署证书

[root@localhost ~]# openssl ca -in httpd.csr -out httpd.crt -days 365

(6)修改httpd的ssl配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/html/feiyu1"
ServerName www.feiyu.com
SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

(7)验证导入浏览器

验证,可以使用以下命令进行验证或者将证书导入到浏览器并进行访问:

# openssl s_client -connect IP:port -CAfile /path/to/CA_certificate_file

17、服务器status页面

status页面是httpd内生的,且此信息可以通过web予以显示,此信息是关于服务器的运行状态的所以不能对所有人都显示。

[root@localhost html]# vim /etc/httpd/conf/httpd.conf
<Location /server-status>
SetHandler server-status
AuthType Basic
AuthName "Server Status"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user
Order deny,allow
Allow from all

<Location /server-status>

SetHandler: 显式的定义使用的处理器 ,是当文件被调用时,Apache内部表示形式;一般每种文件类型都有其隐式处理器;

18、使用mod_deflate模块压缩页面优化传输速度

一般当CPU多空闲,带宽压力大时才会启用压缩,启用压缩不但能优化传输速度也能节约带宽,但是其一个弊端就是会使缓存的命中率下降。

[root@localhost html]# vim /etc/httpd/conf/httpd.conf
 
SetOutputFilter DEFLATE    #启用deflate
 
 [root@localhost conf.d]# vim deflate.conf
 
    # Restrict compression to these MIME types    定义要压缩的文件类型 
    AddOutputFilterByType DEFLATE text/plain 
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE text/css
 
    # Level of compression (Highest 9 - Lowest 1)
    DeflateCompressionLevel 9                     #压缩比,默认为6
     
    # Netscape 4.x has some problems.
    BrowserMatch ^Mozilla/4 gzip-only-text/html
     
    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
     
    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

19、资源限定

软限制:可以超出的限制,但仅超出一定时长;

硬限制:绝对不能超出的限制

使用 ulimit 可以修改软限制:

-n [N]: 显示或限定能打开的最大的文件句柄数;

-u [N]: 所能够运行的最多进程数;

其相对应的配置文件为:/etc/security/limits.conf,扩展配置:/etc/security/limits.d/*.conf

root@tianfeiyu # vim /etc/security/limits.conf #设定硬限制
apache hard nofile   65535  #设定能打开的最大文件数
apache hard nproc 30000#设定能打开的最大进程数

20、httpd程序包自带的工具介绍

httpd:Apache 服务器。

apachectl:Apache HTTP 服务器控制工具。

ab:Apache HTTP 服务器性能基准工具。

apxs:Apache 扩展工具。

configure:配置源代码。



为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**

![](https://img-blog.csdnimg.cn/img_convert/3ea689e40a0e07b5ea07d7a8f583dd7e.png)

本份面试集锦涵盖了

*   **174 道运维工程师面试题**
*   **128道k8s面试题**
*   **108道shell脚本面试题**
*   **200道Linux面试题**
*   **51道docker面试题**
*   **35道Jenkis面试题**
*   **78道MongoDB面试题**
*   **17道ansible面试题**
*   **60道dubbo面试题**
*   **53道kafka面试**
*   **18道mysql面试题**
*   **40道nginx面试题**
*   **77道redis面试题**
*   **28道zookeeper**

**总计 1000+ 道面试题, 内容 又全含金量又高**

*   **174道运维工程师面试题**

> 1、什么是运维?

> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

> 3、现在给你三百台服务器,你怎么对他们进行管理?

> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点

> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/d8cd57f1f0b15e44c81a2116a638fb11.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-jcShdMQ3-1713330462757)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值