第18周作业--nginx

1、请列出 nginx 常用模块的各个优缺点以及区别

回答:核心模块:是nginx服务器必不可少的模块,提供日志记录、进程管理、配位文件解析等核心功能;

         http模块:提供http协议解析的相关功能,比如端口配置、网页页面位置设置、http响应报文头部、安全协议等;

         邮件服务模块:提供您想的邮件服务功能;

         stream模块:实现反向代理、tcp负载均衡功能。


2、请写出用户通过 nginx 访问的工作过程

   回答:1、用户发送访问请求,dns找到ip后进行tcp三次握手;

     2、nginx的master进程建立listen的socket连接,根据配置文件生成响应数量的work进程,work进程通过竞争取得请求处理权,并进程响应并发送响应请求。

       3、根据配置文件设置到时间后自动断开连接。

 

3、请写出实现 nginx-https 访问得步骤过程

回答:1、客户端发起https请求,一般为443端口。

         2、服务器端需配置https协议,需一套公钥和私钥文件,可申请也可自制。

     3、服务器端传送证书至客户端,客户端验证服务器端所发证书的有效性;若证书不可用,显示证书错误;证书若可用,生成随机数,用公钥对随机数进行加密,发送至服务器端。

     4、服务器端用私钥解析客户端发送的文件,然后用该随机数对文件进行加密传输。

         5、客户端收到加密的文件,解密后即可得到原始文件。

4、请写出隐藏 Nginx 版本号得过程

回答:如果配置文件中server_tokens on,修改/usr/local/src/nginx-***/src/core/nginx.h  13-14行

        #define NGINX_VERSION     "1.9"

        #define NGINX_VER             "   " NGINX_VERSION

      如果server_token off,修改/usr/local/src/http/ngx_http_header_filter_module.c  第49行

       static char ngx_http_server_string[] = "Server:  ####" CRLF;

5、请写出 nginx 各种优化参数。以及每个参数得作用是什么

回答:main模块:

worker_processes auto,   最好设为auto,一般需要与cpu数量保持一致;
worker_cpu_affinity  000001 000100  ,将nginx工作进程绑定至固定的cpu核心,减少nginx在不同的核心上来回跳转
worker_rlimit_nofile ### 所有worker进程所能打开的最大文件数,最好于ulimit -n保持一致。

event模块:

accept_mutex on     避免惊群,建议设置为on。
posted @ 2020-10-11 22:40  刘六六LHR  阅读(81)  评论(0)    收藏  举报