马哥博客作业第十八周

1、请列出 nginx 常用模块的各个优缺点以及区别
1>.核心模块:是Nginx正常运行必不可少的模块,提供错误日志记录、配置文件解析、权限控制、事件驱动机制、进程管理等核心功能。
2>.标准HTTP模块:提供HTTP协议解析相关的功能,比如:HTTP访问控制、端口配置、基本认证、URL重写、负载均衡等设置。
3>.可选HTTP模块:主要用于扩展标准的HTTP功能,比如:安全协议SSL、网络传输压缩、解析 GeoIP 请求等。
4>.邮件服务模块:用于支持Nginx的邮件服务,比如:POP3、IMAP、SMTP邮件协议的支持。
5>.Stream服务模块: 实现反向代理功能,包括TCP协议代理
6>.第三方模块:为了扩展Nginx服务器的应用,完成开发者自定义功能。

2、请写出用户通过 nginx 访问的工作过程
1>.用户输入网址,传递访问请求。
2>.Nginx的Master进程建立listen的socket,负责接收用户请求,读取配置文件,fork出相应的Work进程,,并建立一个单向管道将访问请求传递给Work进程。
3>.Work进程进行竞争,获胜方接收请求之后,调用IO进行处理,如果不能立即得到结果,就会优先处理其他的请求;客户端在此期间也不用等待相应结果,
能够处理其他操作;当有结果返回时,就会通知Work进程,然后进行响应。

3、请写出实现 nginx-https 访问得步骤过程
1>.自签名CA证书
[root@centos8 nginx]# mkdir /apps/nginx/certs
[root@centos8 ~]# cd /apps/nginx/certs/
[root@centos8 nginx]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
Generating a 4096 bit RSA private key
.................++
.....
Country Name (2 letter code) [XX]:CN #国家代码
State or Province Name (full name) []:BeiJing  #省份
Locality Name (eg, city) [Default City]:Beijing #城市名称
Organization Name (eg, company) [Default Company Ltd]:magedu.Ltd #公司名称
Organizational Unit Name (eg, section) []:magedu #部门
Common Name (eg, your name or your server's hostname) []:ca.magedu.org #通用名称
Email Address []: #邮箱
[root@centos8 certs]# ll
-rw-r--r-- 1 root root 2033 Sep 28 14:59 ca.crt
-rw-r--r-- 1 root root 3272 Sep 28 14:59 ca.key
2>.自制key和csr文件
[root@centos8 certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.magedu.org.key   -out www.magedu.org.csr
Generating a 4096 bit RSA private key
........................................................................++
......
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BeiJing
Locality Name (eg, city) [Default City]:BeiJing
Organization Name (eg, company) [Default Company Ltd]:magedu.org
Organizational Unit Name (eg, section) []:magedu.org
Common Name (eg, your name or your server's hostname) []:www.magedu.org
Email Address []:2973707860@qq.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:   
An optional company name []:
[root@centos8 certs]# ll
-rw-r--r-- 1 root root 2033 Sep 28 14:59 ca.crt
-rw-r--r-- 1 root root 3272 Sep 28 14:59 ca.key
-rw-r--r-- 1 root root 1777 Sep 28 15:01 www.magedu.org.csr
-rw-r--r-- 1 root root 3272 Sep 28 15:01 www.magedu.org.key
3>.签发证书
[root@centos8 certs]# openssl x509 -req -days 3650 -in www.magedu.org.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.magedu.org.crt
4>.https配置
server {
listen 80;
listen 443 ssl;
server_name www.magedu.org;
ssl_certificate /apps/nginx/certs/www.magedu.org.crt;
ssl_certificate_key /apps/nginx/certs/www.magedu.org.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
location / {
root /data/nginx/html/pc;
}
}
5>.重新加载Nginx并访问验证
[root@centos8 certs]#nginx -t
[root@centos8 certs]#nginx -s reload

4、请写出隐藏 Nginx 版本号得过程
1>.修改nginx主配置文件
[root@CentOS7 conf]#vim nginx.conf
在http配置段中添加server_tokens off;一行
2>.重新加载Nginx
[root@centos7 certs]#nginx -t
[root@centos7 certs]#nginx -s reload
3>.在客户端进行测试
[root@CentOS6 ~]#curl -I www.magedu.org
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 28 Sep 2020 08:19:13 GMT
Content-Type: text/html
Content-Length: 7
Last-Modified: Fri, 25 Sep 2020 08:49:52 GMT
Connection: keep-alive
ETag: "5f6daf30-7"
Accept-Ranges: bytes

5、请写出 nginx 各种优化参数。以及每个参数得作用是什么
1>.全局配置段
worker_processes  auto; #启动工作进程数数量
worker_cpu_affinity auto; #将Nginx工作进程绑定到指定的CPU核心
worker_rlimit_nofile 1000000; #所有worker进程能打开的文件数量上限,最好与ulimit -n 的值保持一致
[root@centos8 ~]#vim /etc/security/limits.conf
*  - nproc 1000000
2>.event配置段
worker_connections  65536; #设置单个工作进程的最大并发连接数
use epoll; #使用epoll事件驱动
accept_mutex on; #on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker
multi_accept on; #on时Nginx服务器的每个工作进程可以同时接受多个新的网络连接
3>.http配置段
sendfile    on; #作为web服务器的时候打开sendfile加快静态文件传输
tcp_nopush   on; #在开启了sendfile的情况下,合并请求后统一发送给客户端
keepalive_timeout  65 65; #设置会话保持时间,第二个值为响应首部:keep-Alived:timeout=65,可以和第一个值不同
gzip on; #开启文件压缩
charset utf-8; #设置编码格式

posted @ 2020-09-28 16:49  小小小小石头  阅读(91)  评论(0)    收藏  举报