7月20号问答

问题一:apache和nginx的区别,优缺点,如何选择

区别,优缺点
  1. 性能:Nginx和Apache在处理静态文件方面都很出色,但Nginx在处理高并发请求方面表现更为优秀。这是因为Nginx可以同时处理大量的连接。相比之下,Apache在处理大量请求时可能会出现性能瓶颈。
  2. 资源占用:Nginx相比Apache更加轻量级,对系统资源的占用更少。这意味着在相同的硬件条件下,Nginx可以处理更多的并发请求,提供更高的吞吐量。
  3. 可扩展性:Nginx的设计理念使其更加模块化,这意味着用户可以根据自己的需求添加或删除模块,从而增强其功能或提高性能。相比之下,Apache的模块化程度较低,虽然也有一些可用的模块,但总体来说不如Nginx灵活。
  4. 配置复杂性:Nginx的配置相对简单,尤其在处理反向代理、负载均衡等方面。而Apache的配置则相对复杂一些,需要更多的时间和经验来进行优化。
  5. 社区支持:Apache作为开源软件的代表,拥有庞大的用户基础和活跃的开发者社区。这意味着当你遇到问题时,可以很容易地在网上找到解决方案或得到社区的帮助。而Nginx虽然也有一个庞大的用户基础,但其开发者社区相对较小
选择:

网站或应用需要处理大量的并发请求,其次,如果你的系统资源有限,或者你需要更高的吞吐量,另外,如果你需要使用反向代理或负载均衡功能,Nginx的配置更加简单易用。

如果你的项目依赖于特定的Apache模块,或者你更倾向于从活跃的开发者社区中获取支持,那么Apache可能更适合你。

虽然Nginx和Apache各有优缺点,但它们也可以一起使用。你可以使用Nginx作为反向代理服务器,将动态请求转发给后端的Apache服务器处理。这样既可以利用Nginx的高并发性能和负载均衡能力,也可以利用Apache的模块化和社区支持。

问题二:请求报文和响应报文头部常见的属性

请求头

请求报文主要由请求行、请求头、空行、请求体构成。

请求头包含以下几个:

Host:请求的服务器的域名。

Accept:客户端能够处理的媒体类型。

Accept-Encoding:客户端能够解码的内容编码。

Authorization:用于认证的凭证信息,比如token数据。

Content-Length:请求体的长度。

Content-Type:请求体的媒体类型。

Cookie:存储在客户端的cookie数据。

If-None-Match:资源的ETag值,用于缓存控制。

Connection:管理连接的选项,如 keep-alive。

响应头

响应报文通常包含状态行、响应头、空行、响应体。

响应头包含以下几个:

Content-Type:指定响应主体的媒体类型。

Content-Length:指定响应主体的长度(字节数)。

Server:指定服务器的信息。

Expires: 响应的过期时间,之后内容被认为是过时的。

ETag: 响应体的实体标签,用于缓存和条件请求。

Last-Modified: 资源最后被修改的日期和时间。

Location:在重定向时指定新的资源位置。

Set-Cookie:在响应中设置Cookie。

Access-Control-Allow-Origin: 跨源资源共享(CORS)策略,指示哪些域可以访问资源。

问题三:静态缓存资源如何自动更新

配置服务器缓存策略

利用CDN的缓存刷新功能

等等

问题四:什么是长连接,有什么作用

长连接(long connnection),指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。 短连接(short connnection),是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时才去建立一个连接,数据发送完成后则断开此连接,即每次连接只完成一项业务的发送。

长连接 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况

问题五:apache的mpm多路处理模块

它将Apache的结构能够模块化,把核心的任务处理作为一个可插拔的模块来运行

他是Apache中唯一一个系统层的模块

主要职责:
  1. 根据Apache运行的操作系统平台来优化Apache。
  2. 提高Apache的效率。
  3. 保证Apache的安全。

问题六:nginx如何实现高并发

异步非阻塞,使用了epoll 和大量的底层代码优化

问题七:为什么 Nginx 不使用多线程?

Apache: 创建多个进程或线程,而每个进程或线程都会为其分配 cpu 和内存(线程要比进程小的多,所以worker支持比perfork高的并发),并发过大会耗光服务器资源。

Nginx: 采用单线程来异步非阻塞处理请求(管理员可以配置Nginx主进程的工作进程的数量)(epoll),不会为每个请求分配cpu和内存资源,节省了大量资源,同时也减少了大量的CPU的上下文切换。所以才使得Nginx支持更高的并发。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇