马哥博客作业第十八周
1、请列出 nginx 常用模块的各个优缺点以及区别
1)、访问控制模块ngx_http_access_module:可以实现基于ip的访问控制功能
2)、用户认证模块ngx_http_auth_basic_module:可以实现基于用户的访问控制,使用basic机制进行用户认证
3)、状态查看模块ngx_http_stub_status_module:用于输出Nginx的基本状态信息
4)、日志记录模块ngx_http_log_module:可以设置访问日志文件路径,格式及相关的缓冲配置
5)、压缩相关模块ngx_http_gzip_module:支持在服务端将文件进行压缩后传给客户端,和其他压缩相关设置,实现压缩功能
6)、https模块ngx_http_ssl_module:实现文件加密传输
2、请写出用户通过 nginx 访问的工作过程
1)、用户在浏览器地址栏输入网址,通过DNS服务器将域名解析成ip地址
2)、通过ip地址,中间经过路由转换找到网站服务器,发送http请求
3)、因为http工作在第七层应用层,tcp工作在第四层传输层,所以在发送http请求之前,会先进行tcp三次握手,确保数据传输的稳定性
4)、三次握手完成后,开始向服务器发送http请求报文,服务器收到请求报文后,会给出响应报文。如果是静态页面,服务器会直接将资源响应给客户端;如果是动态页面,Nginx会将请求转给后端程序,后端程序会去查询数据库,根据数据库返回的内容,发送给客户端
5)、客户端浏览器收到响应报文后,渲染html文档,最终得到我们看到的网页页面
3、请写出实现 nginx-https 访问的步骤过程
1)、Nginx在编译安装的时候需开启ssl模块,使用--with-http_ssl_module
2)、使用openssl生成证书文件
3)、在Nginx配置文件中配置https信息
4)、检查Nginx语法,重新加载服务
4、请写出隐藏 Nginx 版本号的过程
修改Nginx的主配置文件nginx.conf,在http上下文中添加指令server_tokens,并将值设为off,然后重新加载Nginx服务生效。
5、请写出 nginx 各种优化参数。以及每个参数得作用是什么
1)、worker_processes number | auto;
worker进程的数量,通常应该为当前主机的cpu物理核心数,用来处理用户的请求
2)、worker_cpu_affinity auto [cpumask];
将worker进程绑定在固定cpu上提高缓存命中率
3)、worker_priority number;
指定worker进程的nice值,设定worker进程优先级:[-20 , 19]
4)、worker_rlimit_nofile number;
worker进程能够打开的文件数量上限,默认较小,生产中需调大如65535