OpenResty(Nginx)示例

Nginx

Nginx概念:

聊到Nginx,先简单讲一下Nginx的基本概念

Nginx是一个高性能的、开源的 Web 服务器和反向代理服务器软件,由 Igor Sysoev 开发。它可以作为 HTTP 服务器使用,也可以作为负载均衡器、HTTP 缓存、反向代理和邮件代理等其他功能使用。

常见的一些概念有

负载均衡

在高访问量的情况下,单个服务器可能无法满足所有请求。Nginx 可以通过负载均衡的方式来分摊请求到多台服务器上,从而提高整个系统的吞吐量和可靠性。

反向代理

反向代理是指将客户端的请求转发到后端服务器,并将响应返回给客户端。与正向代理不同,反向代理隐藏了真实的服务器并提高了安全性。

静态文件服务器

Nginx 可以作为静态文件服务器使用,例如,图片、CSS JavaScript 文件等。Nginx 可以快速地处理这些静态资源,并减轻后端服务器的负担。

动态内容传输

可以编写 Nginx 模块来处理动态内容的生成和传输,常用的语言有 Lua PerlNginx 提供了灵活的配置选项来支持不同的编程语言和框架。

SSL/TLS 加密

Nginx 支持 SSL TLS 协议,可以使用加密传输 HTTP 流量,从而提高数据的安全性。

缓存

Nginx 可以作为反向代理缓存服务器使用,缓存常见的静态和动态资源,减少了对后端服务器的请求,提高了响应速度。

日志处理

Nginx 可以生成访问日志并将它们保存到本地文件系统中,也可以通过 Syslog TCP/UDP 协议将访问日志发送到远程服务器。

Nginx安装

Nginx可以直接通过Nginx的官网进行下载 但是原生的Nginx没有集成太多的插件

Nginx原生官网nginx: download

这里推荐使用openResty OpenResty® - 开源官方站

openResty是基于Nginx和Lua的高性能web平台

我这里就演示openResty了

下载完成后可以使用cmd或者是其他的命令行进入到openResty的目录 直接nginx.exe就可以启动了

 

当我们再去访问本地的localhost:80的时候就会展示openResty

location均衡配置

启动完成之后 我们找到目录下conf的nginx.conf

 

因为注释的内容太多不方便展示 然后我就给删掉了

 

我们可以看到 默认listen为80的时候 location接受的是 / 也就是所有的请求路径都会展示html下的index.html

为了更直观的看到变化 我们可以把默认的location改为

default_type text/html;

location / {

            echo "hello nginx";

        }

改为这个后 再启动一个cmd窗口 输入 nginx.exe -s reload 指令然后回车 这个也就是重启nginx的指令 我们再去访问本地80的时候 页面就会展示echo打印出来的信息

当然 nginx也不是只展示一个页面 我们可以自定义一些请求的路径地址给nginx

下面我举个例子

在原有的location基础上我们加入一个其他的

 

重启nginx 后我们去访问一下这个路径

 

 

这样我们就可以看到一个很明显的区别了

这样也是会出现问题 因为如果我们需要访问/xuan/aa的时候 则还是会走我们默认的location / 这条

因为在nginx中 / 是默认去捕获那些配置文件中没有的路径

所以我们要用到 ^~ 可以把这两个符号理解为 以什么什么开头

 

我们这样再去访问不管是/xuan/1 还是/xuan/2都会展示 hello ^~

此外再说一下第三种

~ /

这种是以正则的方式去判断请求的路径

例如~ /\w 这里的\w 也就是正则中的 是字母或则数字

 

怕你们不理解 我在这里排个序

 

并且在nginx的配置文件中 可以使用[a-z]

这样我们请求a-z的路径都会走这一条

但是如果有两个location都符合条件的话 Nginx会选择书写顺序的先后来选择 会选择第一个符合规则的location

反向代理配置

我这里就用我自己的web做一个实例了

 

配置反向代理的时候 需要编写proxy_pass web地址

重启nginx后我们再去访问80端口 就会展示我们反向代理中的web页面

但是当我们需要其他路径 也就是通过访问/??的方式访问的反向代理中的web 就会出现问题

 

以上图为例

当我们去访问/aa的时候

 

就会出现404的问题 当然这个问题是因为 nginx把这个/aa请求转化为了

http://www.mayi.red/aa 所以会出现404的问题

解决方式

在/aa的后面再加一个/

在反向代理web地址的后面也加一个/、

 

 

完美解决

 

当然 最好的格式还是把服务器的ip地址给归纳起来 并且做一个负载均衡

这也就是一个入门级的教程

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

公有云云硬盘(EBS)有效范围内扩容/存储规格变更指导手册

一、背景 某公有云环境中,云主机直连的云硬盘存储某数据库数据,随着数据的积累,大约10亿多条数据,云硬盘急需扩容,但前期规划云硬盘未开启lvm卷,且当前存储容量未达EBS容量限制,最大可达32T,因此决定采用EBS规格变更的方式来实现主机存储的扩容; 二、注意点: 1)过…

WebGIS支持国内各地方坐标系数据展示的方案

在我们的实际项目开发过程中,会存在着很多的客户提供的数据是地方坐标系的数据,这些数据通常是一些类似于地块数据,点位数据等等的矢量数据。如何加载这些数据可能会让大家有些头疼。我们这篇文章来给大家提供几种解决方案。 首先要清楚一个基础的地理学知识,那就是地理坐…

5年测试被裁,去面试差点被问哭了······

我的个人背景非常简单,也可以说丝毫没有亮点。 学历普通,计算机专业二本毕业,毕业后出来就一直在一家小公司,岁月如梭细,算了下至今从事软件测试已经5年了,也点点点了五年,每天都是重复的工作&…

WiFi(Wireless Fidelity)基础(十)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

【AUTOSAR】【以太网】TCPIP

目录 一、概述 二、约束和假设 三、依赖模块 3.1 EthIf 3.2 EthSM 3.3 SoAd 3.4 KeyM 3.5 CSM 四、功能说明 4.1 系统扩展性 4.2 IPv4 4.2.1 IPv4 4.2.2 ARP 4.2.3 Auto-IP 4.2.4 ICMP 4.3 IPv6 4.4 IPSec 4.5 基于IP的协议 4.5.1 本地地址表 4.5.2 UDP 4…

渗透测试--2.漏洞探测和利用

目录 一.漏洞分类 二.漏洞探测 三.漏洞利用 四.漏洞扫描 1.Nessus 2.Web应用漏洞扫描器——DVWA 五.Metasploit漏洞利用 一.漏洞分类 网络漏洞 系统漏洞 应用漏洞 人为不当配置 二.漏洞探测 渗透测试是一种测试网络、应用程序和系统安全性的方法,旨在发现…

phpstorm 配置xdebug

目录 配置全局环境 phpstorm 项目xdebug配置 额外补充: 配置全局环境 本地运行命令 php -v, 看是否有Xdebug相关的信息若没有,安装xdebug,以下是mac相关方式: pecl search xdebug 查询,找到之后用 pecl install xdebug…

C++ 类与对象中类的深入知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

绪论 本章我们接着对类和对象进行探索,这是一个在我们c中比较重要的知识点,下面我们才是我们类和对象的更加深入且困难的知识点,希望你能通过这篇文章对类其有更加深入的了解。 话不多说安全带系好,发车啦(建议电脑观看…

【Linux】shell编程之—函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、概述二、函数的查看和删除1.查看 declare2.删除 declare 三、函数的返回值1.return 返回值2.echo 返回值 四、函数的参数传入与变量范围五、函数的应用1.阶乘2.…

GPT神奇应用:给孩子做每日安排

正文共 1163 字,阅读大约需要 4 分钟 家长必备技巧,您将在4分钟后获得以下超能力: 快速生成每日安排计划 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图片…

前端部署vue项目到腾讯云服务器

先把dist包上传服务器 可以使用宝塔、FileZilla、手动上传等等方式 已有腾讯云服务器之后进入面板界面 然后安装Nginx 请一步一步,紧跟步骤 第一步 安装gcc-c 编译器。nginx依赖的 pcre 和 zlib 包 yum -y install gcc zlib zlib-devel pcre-devel openssl openss…

Java中的七种设计原则

1.开闭原则 对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有的代码,要去实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 下面是输入法设置皮肤的例子: // 抽象皮…

制造业为什么要数字化?有何意义?

制造业为什么要数字化?有何意义? 党的二十大报告指出,要“坚持把发展经济的着力点放在实体经济上,推进新型工业化”“促进数字经济和实体经济深度融合”。 新一代信息技术催生第四次工业革命,互联网、大数据、人工智能…

【五一创作】自动驾驶技术未来大有可为

本文概要 自动驾驶技术是当今汽车行业的发展热点之一,但其也存在着许多争议。大家也可以从以下几个维度谈谈你对这项技术的看法。 🌟🌟🌟个人简介🌟🌟🌟 ☀️大家好!我是新人小白博…

带头双向循环链表(增、删 、查、改)基本操作详细介绍 必看!!!

文章目录 链表介绍链表初始化链表打印查找元素增加节点头插尾插在指定位置插入 删除节点头删尾删删除指定位置节点 链表判空获取链表中元素的个数链表销毁 链表介绍 前面说到,链表的结构一共有八种:带头单向循环链表、带头单向非循环链表、带头双向循环…

《编码——隐匿在计算机软硬件背后的语言》精炼——第17章(自动操作)

夫道成于学而藏于书,学进于振而废于穷。 文章目录 完善加法器加入代码的加法器扩大加数范围自由调用地址的加法器合并代码RAM和数据RAMJump指令硬件实现条件Jump指令零转移的硬件实现条件Jump指令的例子 总结 完善加法器 我们在第14章介绍了一个可以进行连加的加法…

ChatGPT都有些什么好玩的玩法?

ChatGPT是一个智能聊天机器人,可以进行多种有趣的玩法,以下是其中一些: 1. 问答游戏:ChatGPT可以回答各种问题,你可以和它玩问答游戏,看看谁更聪明。 2. 聊天互动:ChatGPT可以进行自然语言聊天…

自学黑客【网络安全】,一般人我劝你还是算了吧

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 我一直强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键…

分区计量管理项目应用

为充分发挥分区计量管理项目在漏损控制的效用,应构建科学完备的应用体系,如下图 分区计量应用体系 1. 基于水量平衡分析的漏损现状评估方法 分区计量管理项目通过监控分析DMA 分区内流量、压力、水质、大用户用水等情况,结合营业抄收系统的营…

win10中rclone挂载minio的多实例安装方式

1.下载rclone安装包&#xff0c;复制多个.exe并重命名 2.1添加rclone1server.xml <service><id>rclone1</id><name>rclone1</name><description>rclone1service</description><executable>rclone</executable><argum…