Nginx入门~

Thu 09 July 2020 by kizzy

​ Nginx 是一款轻量级的 Web服务器/反向代理服务器及电子邮件代理服务器,它在BSD-like协议下发行。特点是占有内存比较少,提供的并发能力强,主要的用户有:百度,京东,新浪,网易,腾讯以及淘宝。

​ 除了Nginx之外的web服务器还有很多,比如Apache,Microsoft-IIS等,下图是全球网站服务器的统计报告。

​ 随着移动互联网和PC的兴起,网站的访问量也在与日俱增,这就对后端的Web服务器提出了极为严苛的高并发需求。而nginx就是为性能而生,发布以来一直注重高性能,高并发, 低CPU内存消耗。在功能方面:支持负载均衡,反向代理,访问控制,热部署以及高扩展性等特性,配置简单文档丰富。

​ 但是可以看到apache一直处于领先地位,很多时候架构选择是Nginx+Apache并用的,那么该如何选择呢?

Nginx和Apache的共同之处:

  • 同是 HTTP 服务器软件,都采用模块化结构设计
  • 支持通用语言接口,如 PHP、Python 等
  • 支持正向代理和反向代理
  • 支持虚拟主机及 SSL 加密传输
  • 支持缓存及压缩传输
  • 支持 URL 重写
  • 模块多,扩展性强
  • 多平台支持

Nginx的优势:

  • 轻量级:安装文件小,运行时 CPU 内存使用率低;
  • 性能强:支持多核,处理静态文件效率高,内核采用的 poll 模型最大可以支持 50K 并发连接;
  • 支持热部署,同时启动速度快,可以在不间断服务的情况下对软件和配置进行升级;
  • 负载均衡,支持容错和健康检查;
  • 代理功能强大,支持无缓存的反向代理,同时支持 IMAP/POP3/SMTP 的代理。

Nginx的劣势:

  • 相比 Apache 模块要少一些,常用模块都有,支持 LUA 语言扩展功能
  • 对动态请求支持不如 Apache
  • Windows 版本功能有限,受限于 Windows 的特性,支持最好的还是 Unix/Linux 系统

Nginx的运行原理:

​ Nginx 由内核和一系列模块组成:内核提供 web 服务的基本功能,如启用网络协议、创建运行环境、接收和分配客户端请求、处理模块之间的交互。模块实现 Nginx 的各种功能和操作,Nginx 的模块从结构上分为核心模块、基础模块和第三方模块。

​ 其实nginx还有redis这些被后端程序员经常使用的开源软件背后的逻辑并不复杂,甚至自己去实现一个也不是多么困难,难得是你碰到一个需求痛点自己动手造轮子去开创解决。 意识到不完美,有想法改进,还能有能力实现想法这是十分难能可贵的。

查看源图像


一次wsl和ubuntu20.04的失败配置记录

Wed 27 May 2020 by kizzy

事情是这样的,这几天在改完毕业论文之后我闲的没事干,就想着能不能使用WSL作为服务器挂载一些静态网页。

read more