加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Nginx的这些妙用,你肯定有不知道的!

发布时间:2019-12-26 15:47:08 所属栏目:Unix 来源:站长网
导读:副标题#e# Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。目前应该是几乎所有项目建设必备。今天通过这篇攻略让你快速通关 Nginx。 图片来自 Pexels Nginx 简介 Nginx 是一个免费、开源、高性能、轻量级的 HTTP 和反向代理服务

Nginx的这些妙用,你肯定有不知道的!

Nginx 模块开发

由于 Nginx 的模块化特性,所以可以支持模块配置,也可以自定义模块,Nginx 的模块开发,程序员目前还不需要太深入。

Nginx 模块分类如下图:

Nginx的这些妙用,你肯定有不知道的!

Nginx配置选项,解压 Nginx 后的配置操作示例:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre  --with-http_ssl_module 

Nginx的这些妙用,你肯定有不知道的!

Nginx 面试题

①Nginx 功能,你们项目中用到的 Nginx?

反向代理服务器

实现负载均衡

做静态资源服务器

作为 HTTP Server

②Nginx 常用命令有哪些?

启动nginx    ./sbin/nginx 

停止nginx    ./sbin/nginx -s stop   ./sbin/nginx -s quit 

重载配置      ./sbin/nginx -s reload(平滑重启) service nginx reload 

重载指定配置文件    ./sbin/nginx -c  /usr/local/nginx/conf/nginx.conf 

查看nginx版本  ./sbin/nginx -v 

检查配置文件是否正确  ./sbin/nginx -t 

显示帮助信息  ./sbin/nginx  -h 

③Nginx 常用配置?

worker_processes 4; #工作进程数work_connections 65535; #每个进程的并发能力error_log /data/nginx/logs/error.log; #错误日志

④Nginx 是如何实现高并发的?

Nginx 采用的是多进程(单线程)&多路 IO 复用模型,异步,非阻塞。

一个主进程 Master,多个工作进程 Worker,每个工作进程可以处理多个请求 ,Master 进程主要负责收集、分发请求。

每当一个请求过来时,Master 就拉起一个 Worker 进程负责处理这个请求。同时 Master 进程也负责监控 Woker 的状态,保证高可靠性。

在 Nginx 中的 Work 进程中,为了应对高并发场景,采取了 Reactor 模型(也就是 I/O 多路复用,NIO)。

I/O 多路复用模型:在 I/O 多路复用模型中,最重要的系统调用函数就是 Select(其他的还有 epoll 等)。

该方法能够同时监控多个文件描述符的可读可写情况(每一个网络连接其实都对应一个文件描述符),当其中的某些文件描述符可读或者可写时,Select 方法就会返回可读以及可写的文件描述符个数。

Nginx Work 进程使用 I/O 多路复用模块同时监听多个 FD(文件描述符),当 Accept、Read、Write 和 Close 事件产生时,操作系统就会回调 FD 绑定的事件处理器。

这时候 Work 进程再去处理相应事件,而不是阻塞在某个请求连接上等待。

这样就可以实现一个进程同时处理多个连接。每一个 Worker 进程通过 I/O 多路复用处理多个连接请求。

为了减少进程切换(需要系统调用)的性能损耗,一般设置 Worker 进程数量和 CPU 数量一致。

⑤Nginx 和 Apache 的区别?

轻量级,同样起 Web 服务,比 Apache 占用更少的内存及资源抗并发,Nginx 处理请求是异步非阻塞的,而 Apache 则是阻塞型的。

在高并发下 Nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单,最核心的区别在于 Apache 是同步多进程模型,一个连接对应一个进程;Nginx是异步的,多个连接(万级别)可以对应一个进程。

⑥Nginx 的 Upstream 支持的负载均衡方式?

轮询(默认)

weight:指定权重

ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

第三方:fair、url_hash

⑦Nginx 常见的优化配置有哪些?

调整 worker_processes:指 Nginx 要生成的 Worker 数量,最佳实践是每个 CPU 运行 1 个工作进程。

最大化 worker_connections。

启用 Gzip 压缩:压缩文件大小,减少了客户端 HTTP 的传输带宽,因此提高了页面加载速度。

为静态文件启用缓存。

禁用 access_logs:访问日志记录,它记录每个 Nginx 请求,因此消耗了大量 CPU 资源,从而降低了 Nginx 性能。

参考资料:

《Nginx 核心知识 100 讲》

《精通 Nginx》

nginx.conf 配置文件详解

《尚硅谷 Nginx》

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读