【学习打卡】第1天 Nginx学习
2022/8/5 4:22:47
本文主要是介绍【学习打卡】第1天 Nginx学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Java架构师-技术专家
课程章节: 第6周 集群架构:LVS+Nginx高可用集群
主讲老师:慕课讲师团:Geely、风间影月、阿神……
课程内容:
今天的学习内容包括:
1. 什么是Nginx
- Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供 IMAP/POP3/SMTP服务。
- 主要的功能是反向代理,通过反向代理可以实现集群和负载均衡以及URL的路由(通过配置文件实现)。
- 静态资源虚拟化,可以将本地的静态文件虚拟化成一个服务。
2、什么是反向代理
2.1、什么是正向代理
- 客户端请求目标服务器之间的一个代理服务器
- 请求会先经过代理服务器,然后再转发请求到目标服务器,获得内容后最后响应给客户端。电信、移动运营商、VPN就是正向代理服务器。
2.2、什么是反向代理
- 用户请求目标服务器,由代理服务器决定访问那个ip,代理服务器屏蔽了目标服务器。
- 通过反向代理可以实现路由,通过url转发到不同的服务器
3、Nginx解析过程
nginx通过配置监听端口,映射路由到指定服务。
server { listen 80; # 监听的端口号 server_name localhost; # 服务名 localtion / { # 映射 root html; index index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
4、Nginx常用命令
由于Nginx安装我已经很娴熟,所以不在此赘述,在此记录一下Nginx常用命令。这些命令由 master 进程接受。
# 切换到nginx安装目录 # 启动 nginx ./sbin/nginx # 停止nginx ./sbin/nginx -s stop # 完成当前工作后停止 ./sbin/nginx -s quit # 在不停止nginx的情况下,重启nginx,重新加载配置文件,启动新的工作进程,完美停止旧的工作进程 ./sbin/nginx -s reload # 检测nginx配置文件是否可用 # nginx -t -c ./nginx.conf
5、Nginx进程模型
- master进程:主进程
- worker进程:工作进程,是为master进行服务的。
通过ps-ef | grep nginx
命令查看 nginx 进程
[root@iZ2zeausm2jefqqtmpikzqZ ~]# ps -ef | grep nginx root 4608 4222 0 Jul21 ? 00:00:00 runsv nginx root 4621 4608 0 Jul21 ? 00:00:00 svlogd -tt /var/log/gitlab/nginx root 4623 4608 0 Jul21 ? 00:00:00 nginx: master process /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx polkitd 4667 4623 0 Jul21 ? 00:00:00 nginx: worker process polkitd 4668 4623 0 Jul21 ? 00:00:00 nginx: worker process polkitd 4669 4623 0 Jul21 ? 00:00:00 nginx: worker process polkitd 4670 4623 0 Jul21 ? 00:01:11 nginx: worker process
nginx 在启动之后会产生一个master进程,默认一个worker进程。在./conf/nginx.conf
配置文件中可以配置worker进程数。
worker_processes 2;
master会专门接受一些来自外界的指令,然后把这些指令传递给 worker执行,如果worker发生了异常退出了,那么 master 会启动一些新的worker 去做事。
Nginx多进程保证了多个worker之间是相互独立,一个worker退出不影响其它的worker。
假设Nginx启动以后,创建了3个Worker,当客户端有请求进入到Nginx的时候,每一个worker都要去争抢锁(该锁和客户端一一对应),抢到锁之后 client 和 worker1 会建立响应的关系,才能去处理来自客户端的请求。
传统服务器采用同步阻塞的方式处理请求,必须等一个请求处理完毕之后才回去处理下一个请求。
Nginx采用异步非阻塞的方式处理请求。Nginx可以设置默认连接数,默认是1024。
events { # 默认使用epoll use epoll; # 每个worker允许连接的客户端最大连接数 worker_connections 10240; }
总结 Nginx高性能的原因是采用了抢占机制和异步非阻塞的通信模式(多路复用器,在Netty里面会涉及到)。master是作为监听,当worker获得了client请求的时候,并且处理到了阻塞的部分,worker就不会继续等待该阻塞的请求,而是会处理一些其它的客户端的请求。
6、nginx.conf详解
main 全局配置 ├── worker_processes 工作进程数 ├── event 配置工作模式以及连接数,是一个指令块。 ├── http http模块相关配置 │ └── server 虚拟主机,是一个服务器。可以配置多个 │ ├── localtion 路由规则,表达式 │ ├── listen 该虚拟主机监听端口 │ └── upstream 集群,内网服务器,负载均衡的规则
课程收获:
通过今天的学习了解了
- nginx是什么(高性能的反向代理服务器)
- 能干什么(能够实现集群、负载均衡、URL路由)
- 什么是正向代理、什么是反向代理?(代理服务器会帮助我们去请求外部的资源,用于代理客户端的就是正向代理。服务端的代理就是反向代理,让客户端无感知)
- Nginx的进程模型(Nginx工作时分为master进程和worker进程,worker进程处理请求,为master工作,master指导worker进程工作)
- Nginx的配置文件
学习时长90分钟,第一天完毕。
这篇关于【学习打卡】第1天 Nginx学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享