文章目录
- 1. nginx的介绍
- 2. nginx使用场景
- 3. nginx在windows的下载与安装
- 4. nginx的简单使用
- 5. nginx进行轮询测试
- 6. nginx进行权重测试
- 7. 总结
1. nginx的介绍
Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也是一个开源的、高性能的HTTP和反向代理服务器、IMAP/POP3/SMTP代理服务器。它最初由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发,并以类BSD许可证的形式发布。Nginx因其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名。以下是Nginx的主要特点和用途:
主要特点
- 高性能:Nginx采用异步非阻塞的事件处理模型,能够处理高并发连接,支持高达50,000个并发连接数。
- 轻量级:Nginx具有轻量级的设计,占用的内存和CPU资源相对较少。
- 高可靠性:Nginx提供了丰富的错误处理机制,能够在高负载下稳定运行。
- 高度模块化:Nginx的设计高度模块化,模块编写简单,易于扩展和定制。
- 配置简单:Nginx的配置文件结构清晰,采用嵌套块结构,易于理解和维护。
主要用途
- Web服务器:Nginx可以作为独立的Web服务器,处理HTTP请求并返回响应。
- 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器,隐藏真实的后端服务器,提升安全性和性能。
- 负载均衡:Nginx支持多种负载均衡算法,如轮询、最小连接数等,可以将请求均衡地分发到多个后端服务器上,提高系统的整体性能和可用性。
- 邮件代理:Nginx支持IMAP、POP3和SMTP协议,可以作为邮件代理服务器,路由、过滤和传递电子邮件。
- 动态内容服务:Nginx可以与各种后端应用服务器集成,如PHP、Node.js、Python等,实现动态内容的处理和传递。
- HTTPS服务:Nginx支持SSL/TLS协议,可以提供安全的HTTPS服务,保护用户数据在传输过程中的安全。
- 缓存加速:Nginx可以使用内存、硬盘或SSD等作为缓存存储空间,缓存静态内容和动态内容,减少服务器的负载,提高网站的访问速度。
2. nginx使用场景
Nginx作为一款高性能的HTTP和反向代理web服务器,其使用场景非常广泛。以下是Nginx的主要使用场景:
- 静态文件服务
概述:Nginx在提供静态资源服务方面效率很高,可以快速响应大量的静态请求,如CSS、JavaScript、图片、视频等文件,从而减轻其他动态服务器的负担。
优势:Nginx对静态文件的处理非常高效,因为它直接从磁盘读取文件并通过网络发送给客户端,无需经过复杂的处理流程。 - 反向代理和负载均衡
反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器上,并返回处理结果给客户端。这种机制隐藏了真实的后端服务器,提高了系统的安全性。
负载均衡:Nginx支持多种负载均衡算法,如轮询、最少连接数、IP哈希等,可以根据后端服务器的负载情况动态地分配请求,提高系统的整体性能和可用性。 - 缓存服务器
概述:Nginx可以配置为缓存服务器,缓存一些响应结果,如静态文件、数据库查询结果等,以减少对后端服务器的请求次数,降低后端服务器的负载,提高数据的访问速度。
优势:缓存机制可以显著提高网站的访问速度,尤其是在高并发场景下,能够有效缓解后端服务器的压力。 - SSL加速
概述:Nginx支持HTTPS协议,可以通过SSL/TLS加密技术保护数据传输的安全性。同时,Nginx还提供了SSL加速功能,可以提高HTTPS访问的性能,减少SSL负载压力。
优势:SSL加速功能使得Nginx在处理HTTPS请求时更加高效,能够为用户提供更加安全的访问体验。 - WebSocket支持
概述:Nginx也支持WebSocket协议,可以用于实现实时通信应用程序。WebSocket协议允许服务器和客户端之间建立持久连接,并通过该连接进行双向通信。
应用:WebSocket在实时通信、在线游戏、实时数据推送等领域有广泛的应用。 - 访问控制和安全
概述:Nginx提供了丰富的访问控制功能,如基于IP地址的访问限制、基于用户名的认证等,可以有效保护Web应用程序和服务器的安全。
优势:通过合理的访问控制策略,Nginx可以防止非法访问和恶意攻击,提高系统的安全性。 - 动静分离
概述:为了提高网站的解析速度和降低服务器的压力,Nginx可以实现动静分离。即将动态页面和静态页面由不同的服务器解析,或者通过Nginx将动态请求和静态请求分开处理。
优势:动静分离可以显著提高网站的访问速度和系统的整体性能。
3. nginx在windows的下载与安装
nginx下载
下载下来,直接本地解压就行了
启动后可能会闪退,很正常,打开任务管理器,这里存在就说明启动了
访问localhost:80就可以了
4. nginx的简单使用
打开nginx目录中的html我们创建两个文件夹,然后在其中创建index.html
one中的index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>One</title>
</head>
<body><h1>one!!!!</h1>
</body>
</html>
two中的index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Two</title>
</head>
<body><h1>two!!!!</h1>
</body>
</html>
打开nginx中conf文件夹下的nginx.conf配置一下(加上就行)
server {listen 8098;server_name localhost;location / {root html/one;index index.html index.htm;}}server {listen 8097;server_name localhost;location / {root html/two;index index.html index.htm;}}
随后就能访问了
5. nginx进行轮询测试
我们在nginx.conf中添加其他语句
upstream backServer{server 127.0.0.1:8098;server 127.0.0.1:8097;
}
server {listen 8088;server_name localhost;location / {proxy_pass http://backServer;}
}
重启nginx
在任务管理器里面结束nginx的任务,再启动
然后我们访问localhost:8088
一直刷新一下就会看到,两个界面进行轮流访问!!!
6. nginx进行权重测试
修改配置,其他不变
upstream backServer{server 127.0.0.1:8098 weight=2;server 127.0.0.1:8097 weight=1;
}
再次重启
进行访问localhost:8088
我们会发现one界面的访问概率比two界面更高
7. 总结
我们简单学习了一下nginx的windows安装和简单的轮询与负载的使用。
欢迎批评指正!!!!