• 第18周作业



    1、请列出 nginx 常用模块的各个优缺点以及区别
    核心模块:是nginx服务器正常运行必不可少的模块,提供错误日志记录,配置文件解析,事件驱动机制,进程管理等核心功能
    标准http模块:提供http协议解析相关的功能,比如,端口配置,网页编码设置,http响应头设置等等

    可选的http模块:主要用于拓展标准的http功能,让nginx能处理一些特殊的服务,比如flash多媒体传输,、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

    邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

    stream(反向代理)服务模块:实现反向代理功能,包括TCP协议代理

    第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

    2、请写出用户通过 nginx 访问的工作过程
    基于cs,nginx的服务端监听80或443,客户端访问,
    nginx启动,在默认工作模式下,master进程以root身份启动,加载配置文件,按照配置文件中的配置,开启相应数量的worker进程,通过tcp的三次握手连接处理客户端请求,配置文件中的两个选项可以设定断开连接的,一是按照时间,二是按照获取资源的次数,达到要求后,断开与客户端的连接.

    3、请写出实现 nginx-https 访问得步骤过程
    客户端发起https请求,一般是443端口
    服务端采用https,必须有一套数字证书,这套证书就是一队公钥和私钥
    传送服务器的证书给客户端
    客户端解析验证服务端证书,客户端验证服务器的证书信息,如果发现异常,会弹出一个警告框,提示证书存在问题,如果证书没有问题,就生成一个随机值,用证书对随机值进行非对称加密
    服务端收到客户端加密的信息,用自己的私钥解密后,得到了客户端传来的随机值
    服务端将数据利用随机值进行对称加密,再发送给客户端
    客户端用之前生成的随机值解密服务端传过来的数据,获得了解密后的内容

    4、请写出隐藏 Nginx 版本号得过程
    想自定义响应报文的nginx版本信息,需要修改源码文件,重新编译
    设定server_tokens off 修改解压目录下的src/http/ngx_http_header_filter_module.c
    static char ngx_http_server_string[] = "Server: nginx" CRLF;
    示例:把其中的nginx改为自己想要的文字即可

    5、请写出 nginx 各种优化参数。以及每个参数得作用是什么
    worker-processes auto;             #工作进程的数量,一般和cpu核心数相同
    worker_cpu_affinity 01 10;        #2核心cpu 将工作进程绑定到指定的cpu,每个cpu都有缓存,可以提高速度
    work_priority -19;                      #工作进程的优先级
    worker_rlimit_nofile 100000;    #所有工作进程打开的文件数量,最好与ulimit -n 的值保持一致.
    worker_connections 65536;     #设定单个工作进程的最大并发连接数
    accept_mutex on;                     #避免出现"惊群"现象
    multi_accept on;                       #每个工作进程可以同时接受多个的连接

  • 相关阅读:
    Concurrent
    Java多线程状态切换
    Java中volatile如何保证long和double的原子性操作
    协程与线程
    线程饥饿
    线程活锁
    线程死锁
    Java Thread之start和run方法的区别
    ThreadLocal内存泄漏
    interrupt和interrupted和isInterrupted的区别
  • 原文地址:https://www.cnblogs.com/ssel/p/13753253.html
Copyright © 2020-2023  润新知