Nginx知识点汇总

1.什么是 Nginx?

   Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

 

2. 什么是正向代理和反向代理?

  1. 正向代理就是一个人发送一个请求直接就到达了目标的服务器
  2. 反向代理(Reverse Proxy)就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规则将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

 3. 为什么Nginx性能这么高?

  因为他的事件处理机制,异步非阻塞事件处理机制,运用了epoll模型,提供了一个队列,排队解决。

 

4. Nginx的优缺点

  优点:

    1. 占内存小,可实现高并发连接,处理响应快。

     一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。

    2. 可实现http服务器、虚拟主机、方向代理、负载均衡。

    3. Nginx配置简单。

    4. 反向代理功能可以不暴露正式的服务器IP地址,并可以节省IP资源。

    5. 支持热部署
     master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。当然,它也支持不停止服务就更新配置项、更换日志文件等功能。

  缺点:

    动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很弱,现在一般前端用nginx作为反向代理抗住压力。

 

5. Nginx负载均衡策略及设置

  Nginx 提供了多种负载均衡策略。

  1. 轮询

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。

upstream backserver {
  # 默认所有服务器权重为 1
  server 192.168.250.221:8080
  server 192.168.250.222:8080
  server 192.168.250.223:8080
}

  2. 加权轮询

     每台后端服务器可以使用weight值来设置权重,可以根据每台服务器的处理能力来设置不同的权值,weight的值越大,承担的被分配的请求次数就越多,从而达到合理有效的地利用主机资源。

upstream backserver {
  server 192.168.250.220:8080   weight=3
  server 192.168.250.221:8080              #  这里weight=1
  server 192.168.250.222:8080              #  这里weight=1
}

  3. 最少连接

upstream backserver {
  least_conn;

  # with default weight for all (weight=1)
  server 192.168.250.220:8080
  server 192.168.250.221:8080
  server 192.168.250.222:8080
}

  4. 加权最少连接

upstream backserver {
  least_conn;

  server 192.168.250.220:8080   weight=3
  server 192.168.250.221:8080              # weight=1
  server 192.168.250.222:8080              # weight=1
}

  5. IP Hash

     每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题

upstream backserver {
  ip_hash;
  # with default weight for all (weight=1)
  server 192.168.250.220:8080
  server 192.168.250.221:8080
  server 192.168.250.222:8080
}

  6. 普通 Hash

upstream backserver {
  hash $request_uri;

  # with default weight for all (weight=1)
  server 192.168.250.220:8080
  server 192.168.250.221:8080
  server 192.168.250.222:8080
}

 

6. 常用到的命令

  nginx -s stop :快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。

  nginx -s quit: 平稳关闭Nginx,保存相关信息,有安排的结束web服务。

  nginx -s reload:因改变了Nginx相关配置,需要重新加载配置而重载。

  nginx -s reopen:重新打开日志文件。

  nginx -c filename:为 Nginx 指定一个配置文件,来代替缺省的。

  nginx -t:不运行,仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

  nginx -v: 显示 nginx 的版本。

  nginx -V: 显示 nginx 的版本,编译器版本和配置参数。

 

7. 什么是C10K问题?

  C10K概念最早由Dan KegelC10K提出的,C10K问题单台主机是指无法同时处理大量客户端(10000)的网络套接字。

 

posted @ 2019-05-29 22:45  songguojun  阅读(160)  评论(0编辑  收藏  举报