第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。

浙公网安备 33010602011771号