nginx使用详解

文章目录

  • 一、前言
  • 二、nginx使用详解
    • 2.1、nginx特点
    • 2.2 静态文件处理
    • 2.3 反向代理
    • 2.4 负载均衡
    • 2.5 高级用法
      • 2.5.1 正则表达式匹配
      • 2.5.2 重定向
  • 三、总结

一、前言

本文将详细介绍nginx的各个功能使用,主要包括

二、nginx使用详解

2.1、nginx特点

  • 高性能:Nginx被设计成具有出色的性能。它采用事件驱动的异步架构,能够处理大量并发连接,高效地分发请求和响应。这使得Nginx非常适合用作反向代理、负载均衡器和Web服务器。

  • 轻量级:Nginx的内存占用非常低,资源消耗较小。这使得它能够在资源有限的环境中运行,如嵌入式设备和虚拟私有服务器(VPS)。

  • 高可用性:Nginx支持热部署和无缝升级,可以确保服务的高可用性。它还提供了健康检查和故障转移功能,以防止单点故障。

  • 反向代理和负载均衡:Nginx可以作为反向代理服务器,将客户端请求分发给多个后端服务器,实现负载均衡。这有助于提高应用程序的可伸缩性和性能。

  • 静态文件服务:Nginx能够高效地提供静态文件,如HTML、CSS、JavaScript和图像。它还支持文件缓存和浏览器缓存控制,以减少带宽消耗和提高网站速度。

2.2 静态文件处理

Nginx非常适合处理静态文件,如HTML、CSS、JavaScript、图像等。静态文件处理是通过配置Nginx来指定Web服务器从文件系统中提供这些文件。

配置示例:

server {listen 80;server_name example.com;location /static/ {alias /path/to/static/files/;}location / {# 其他配置,例如反向代理或动态内容处理}
}
  • location /static/指定了一个URL路径,如/static/,Nginx将会从/path/to/static/files/目录中提供静态文件。
  • alias指令用于指定文件存储路径。

2.3 反向代理

说到反向代理就要先说正向代理:
正向代理最大的特点是:客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。
例如:在大陆访问www.google.com,我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。下面是一个正向代理的图示:
在这里插入图片描述
反向代理,客户端堆代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器。
在这里插入图片描述

由于反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

Nginx可以用作反向代理服务器,将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。这对于隐藏后端服务器、负载均衡、加速应用程序等非常有用。

配置示例:

server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;}
}upstream backend_server {server backend1.example.com;server backend2.example.com;
}
  • proxy_pass指令将请求代理到名为backend_server的上游服务器池,其中包括多个后端服务器。
  • upstream块定义了后端服务器池,可以包括多个后端服务器。

2.4 负载均衡

Nginx可以实现负载均衡,将客户端请求均匀地分发到多个后端服务器上,提高系统的可伸缩性和性能。

配置示例:

upstream backend_servers {server backend1.example.com;server backend2.example.com;server backend3.example.com;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend_servers;proxy_set_header Host $host;}
}
  • upstream块定义了包含多个后端服务器的服务器池。
  • proxy_pass指令将请求代理到backend_servers上游服务器池,实现负载均衡。

2.5 高级用法

2.5.1 正则表达式匹配

Nginx支持正则表达式匹配,可以根据复杂的URL匹配规则来定制请求处理。

示例:

server {listen 80;server_name example.com;location ~ ^/blog/post/\d+ {# 匹配像 /blog/post/123 的URL# 进行特定处理}location ~* \.(jpg|png|gif)$ {# 匹配图片文件扩展名的URL# 进行缓存或其他处理}
}
  • ~~*修饰符用于正则表达式匹配。
  • 第一个location块匹配像 /blog/post/123 这样的URL。
  • 第二个location块匹配以 .jpg.png.gif 结尾的URL。

2.5.2 重定向

Nginx允许对请求进行重定向,可以将请求从一个URL重定向到另一个URL。

示例:

server {listen 80;server_name example.com;location /old-url {return 301 /new-url;}location /external-link {return 302 http://external-website.com;}
}
  • return 301return 302指令用于执行永久重定向和临时重定向。
  • 第一个location块将 /old-url 重定向到 /new-url
  • 第二个location块将 /external-link 重定向到外部网站 http://external-website.com

三、总结

这些是Nginx的一些高级用法示例,Nginx非常强大和灵活,可以根据具体需求配置各种复杂的规则和行为。

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/97450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑硬盘数据恢复一般需要收费多少钱

随着电子信息时代的发展,个人和企业对电脑硬盘中存储的数据越发重视。然而,由于各种原因,硬盘数据丢失的情况屡见不鲜。如果您正陷入这样的困境,您可能会好奇恢复失去的数据需要花费多少钱。本文将为您介绍电脑硬盘数据恢复的一般…

串的定义,实现和模式匹配

串的相关概念及操作 串的定义 串:是由零个或多个字符组成的有限序列。 空串:不包含任何字符的串称为空串。 子串:串中任意个连续的字符组成的子序列称为该串的子串。 空格串:由一个或多个空格组成的串称为空格串(空格…

mac常见问题(五) Mac 无法开机

在mac的使用过程中难免会碰到这样或者那样的问题,本期为您带来Mac 无法开机怎么进行操作。 1、按下 Mac 上的电源按钮。每台 Mac 电脑都有一个电源按钮,通常标有电源符号 。然后检查有没有通电迹象,例如: 发声,例如由风…

【Unity3D赛车游戏优化篇】【八】汽车实现镜头的流畅跟随,以及不同角度的切换

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

Shell脚本练习——系统应用相关

显示系统信息 [rootwenzi data]#cat systemInfo.sh #/bin/bash RED"\E[1;31m" GREEN"\E[1;32m" END"\E[0m" echo -e "$GREEN----------------------Host systeminfo--------------------$END" echo -e "HOSTNAME: $REDho…

Python实现Word、Excel、PPT批量转为PDF

今天看见了一个有意思的脚本Python批量实现Word、EXCLE、PPT转PDF文件。 因为我平时word用的比较的多,所以深有体会,具体怎么实现的我们就不讨论了,因为这个去学了也没什么提升,不然也不会当作脚本了。这里我将其放入了pyzjr库中…

npm install依赖冲突解决办法

今天npm的时候发现报错,原来是依赖冲突了 npm后面加上这个指令就可以顺利的安装依赖了。问题主因就是不同开发用了不同版本node导致依赖版本不同,出现了成功冲突,这是段指令;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但…

[Rust GUI]0.10.0版本iced代码示例 - progress_bar

-1 字体支持 iced0.10.0 仅支持指定系统内置字体(用iced的默认字体是乱码) iced0.10.0 手动加载字体的功能已经砍了,想手动加载就用0.9.0版本,文档0.9.0版本 想显示中文则需要运行在一个自带字体的Windows系统上。而且这个字体最好不要钱。 (Windows闲着…

Prometheus + grafana 的监控平台部署

一、Prometheus安装 tar -zxvf prometheus-2.44.0.linux-amd64.tar.gz -C /opt/module/ sudo chown -R bigdata:bigdata /opt/module/prometheus-2.44.0.linux-amd64 mv /opt/module/prometheus-2.44.0.linux-amd64 /opt/module/prometheus-2.44.0 ln -s /opt/module/promethe…

【传输层】TCP -- 三次握手四次挥手 | 可靠性与提高性能策略

超时重传机制连接管理机制三次握手四次挥手滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP应用层协议理解 listen 的第二个参数 超时重传机制 主机A发送数据给B之后,可能因为网络拥堵等原因,数据无法到达主机B&#xff1…

cocosCreator2.4.x 打包 ios ,xcode问题记录

Q:Uncaught ReferenceError: CC_PHYSICS_BUILTIN is not defined A:先clean build folder....,然后重新build Q:xcode 使用模拟器预览 报错 In /Library/Developer/Xcode/DerivedData/hello_world-djnvsdcqyfoqvdepilidvunfunto…

一文入门Web网站安全测试

文章目录 Web网页安全风险评估1. 数据泄漏2. 恶意软件传播3. 身份伪装和欺诈 测试Web网页的安全性常见方法和工具漏洞扫描器手动漏洞测试漏洞利用工具Web应用程序防火墙(WAF)测试渗透测试代码审查社会工程学测试 推荐阅读 Web网页安全风险评估 越来越多…