• Nginx知识点


    Nginx知识点总结

    1. 什么是Nginx?

      Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。

    2. Nginx的一些相关特性?

      • 反向代理/L7负载均衡器

      • 嵌入式PerL解释器

      • 动态二进制升级

      • 可用于重新编写URL,具有非常好的PCRE支持

    3. Nginx和Apache的区别?

      • 轻量级,同样起web服务,比Apache占用更小的内存及资源

      • 抗并发,Nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下Nginx能保持低资源、低消耗、高性能

      • 高度模块化设计,编写模块相对简单

      • 最核心的区别在于Apache是同步多线程模型,一个连接对应一个进程;Nginx是异步连接,多个连接可以对应一个进程

    4. Nginx是如何实现高并发的?

      一个主进程,多个工作进程,每个工作进程可以处理多个请求,每进来一个request,都会有一个worker进程去处理。但不是全程的处理,处理到可能发生阻塞的地方,比如像上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker继续处理其他请求,而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走,由于web server的工作性质决定了每个request的大部分生命都是在网络传输中,实际上花费在server机器上的时间片并不多。这是几个进程就解决高并发的秘密所在,即@skoo所说的webserver刚好属于网络io密集型应用,不算是计算密集型。

    5. Nginx是如何处理HTTP请求的?

      Nginx使用反应器模式。主事件循环等待操作系统发出准备事件的信号,这样数据就可以从套接字读取,在该实例中读取到缓冲区并进行处理,单个线程可以提供数万个并发连接。

    6. 使用反向代理服务器的优点是什么?

      反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层,这个对于安全方面来说是很好的,特别是当使用了web服务器托管时

    7. Nginx服务器的最佳用途?

      Nginx的最佳用途是在网络上部署动态HTTP内容,使用SCGI、WSGI应用程序服务器、用于脚本的FastCGI处理程序。还可以作为负载均衡器。

    8. Nginx服务器上的Master和Worker进程分别时什么?

      Master进程:读取及评估配置和维持

      Worker进程:处理请求

    9. 如何通过不同于80的端口开启Nginx?

      为了通过一个不同的端口开启Nginx,必须进入/etc/Nginx/sites-enabled/,如果这是默认文件,那么必须打开名为“default”的文件。编辑文件,并放置在你想要的端口

      Like server{listen 81};

    10. 是否有可能将Nginx的错误替换为502错误、503错误?

      502=网关错误 503服务器超载 有可能,但是要确保fastcgi_intercept_errors被设置为ON,并使用页面错误指令

      Location / {fastcgi_pass 127.0.0.1:9001;fastcgi_intercept_errors on;error_page 502=503/error_page.html;#...}

    11. 在Nginx中,解释如何在URL中保留双斜线?

      要在Nginx中保留双斜线,就必须使用merge_slasher_off;

      语法:merge_slasher[om/off]

      默认值:merge_slasher on

      环境:http,server

    12. ngx_http_upstream_module的作用时什么?

      ngx_http_upstream_module用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组

    13. 什么时C10K问题?

      C10K问题是指无法同时处理大量客户端(10,000 )的网络套接字

    14. Nginx是否支持将请求压缩到上游?

      可以使用Nginx模块gunZip将请求压缩到上游。gunzip模块是一个过滤器,它可以对不支持“gZip”编码方式的客户机或者服务器使用“内容编码:gZip”来解压缩相应。

    15. 如何在Nginx中获得当前时间?

      要获得nginx的当前时间,必须使用SSI模块、$date_local的变量。proxy_set_herder THE_TIME $date_gmt;

    16. 用Nginx服务器解释-s的目的是什么?

      用于运行Nginx -s参数的可执行文件

    17. 如何在Nginx服务器上添加模块?

      在编译过程中,必须选择Nginx服务器上添加模块,因为Nginx不支持模块的时间选择

    18. 负载均衡策略

      负载均衡的策略可以大致分为两大类:内置策略和扩张策略。内置策略:一般会直接编译进Nginx内核,常用的有轮询、ip hash、最少连接;扩张策略:fair、url hash等

  • 相关阅读:
    CentOS 6 安装 python and pip
    Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)
    Vim 扩展工具 vim-ide (转)
    centos yum 完全卸载依赖
    Linux修改Shell命令提示符及颜色
    tmux 命令
    网络分析shell脚本(实时流量+连接统计)
    ICMP:Internet控制报文协议
    读《分布式一致性原理》zookeeper运维
    同网段和不同网段设备通信原理详解
  • 原文地址:https://www.cnblogs.com/juddy/p/14131041.html
Copyright © 2020-2023  润新知