OpenResty(Nginx)示例

news2024/11/16 1:21:47

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地址给归纳起来 并且做一个负载均衡

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring ( 二 ) 介绍

2.Spring Spring框架是一个用于Java开发的开源应用程序框架,提供了一系列的工具和解决方案,帮助开发者快速构建高质量、可维护的企业级应用。Spring框架的主要特点包括:模块化、轻量级、可测试性、松耦合、面向切面编程(AOP&…

NFT Insider #94:​The Sandbox与ERM Labs达成合作,周杰伦与中国移动开启元宇宙合作

引言:NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto(https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

c高级作业3

#!/bin/bash#有m1.txt m2.txt m3.txt m4.txt&#xff0c;分别创建出对应的目录&#xff0c;m1 m2 m3 m4 并把文件移动到对应的目录下 for ((i1;i<5;i)) do mkdir m$i touch m$i.txtmv m$i.txt m$i done九九乘法表 #九九乘法表 i1 j1 while [ $i -le 9 ] do j1while [ $j -l…

对称算法模式-GCM(Galois/Counter Mode)

以下内容来自《NIST Special Publication 800-38D November, 2007》- Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC。 链接在此 AES Galois/Counter Mode 1. 加密步骤 2. 解密步骤 3. GCTR函数 4. GHASH函数 5. 块数据乘法 6. C…

网络分层模型 | OSI七层模型、TCP/IP四层模型

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

群报数是什么应用?群报数的内容如何自动写入至在线表格?

群报数是什么产品&#xff1f; 群报数是一个人人可用的在线表单工具&#xff0c;可发起「填表、收集、问卷、打卡、通知、预约、报名、投票」等类型的页面&#xff0c;支持预设名单&#xff0c;可快速排查谁未填、并对未填人员一键催填&#xff0c;所收集的数据支持「一键导出…

蓝奥声智能灯控解决方案:一种无线单火取电控制技术

单火开关出现鬼火现象一般是出现在控制小功率灯具的情况下&#xff0c;正常的5W之上的灯具一般是没啥问题的&#xff08;质量差的除外&#xff09;。就现在来说&#xff0c;单火稳定性与零火版相比还是有所欠缺&#xff0c;毕竟从电路原理上来说&#xff0c;这确实是一个硬伤。…

Spark 从入门到精通

Spark 从入门到精通 环境搭建 准备工作 创建安装目录 mkdir /opt/soft cd /opt/soft下载scala wget https://downloads.lightbend.com/scala/2.13.10/scala-2.13.10.tgz -P /opt/soft解压scala tar -zxvf scala-2.13.10.tgz修改scala目录名称 mv scala-2.13.10 scala-2下…

容灾到对象存储,能降低多少灾备成本?以华为云容灾为例

根据IPlytics的数据显示&#xff0c;华为是唯一一家进入全球十大云计算专利拥有者排行榜的中国公司&#xff1b; 华为是唯一一家提供端到端服务能力的云服务商&#xff0c;从底层的物理设备到上层的虚拟化建设都是有华为自主研发的产品&#xff1b; 华为是国内唯一一家提供5线全…

开源大模型文档

开源大模型综述 排行榜1.LLaMA资源&#xff1a; 2.Chinese-LLaMA-Alpaca资源&#xff1a; 3.Alpaca资源&#xff1a; 4.Alpaca-LoRA5.Vicuna资源&#xff1a; 6.OpenChatKit资源&#xff1a; 7.GPT4ALL8.Raven RWKV资源&#xff1a; 9.OPT资源&#xff1a; 10.Flan-T5-XXL资源&…

PowerShell install 一键部署subversion

subversion SVN是subversion的缩写&#xff0c;是一个开放源代码的版本控制系统&#xff0c;通过采用分支管理系统的高效管理&#xff0c;简而言之就是用于多个人共同开发同一个项目&#xff0c;实现共享资源&#xff0c;实现最终集中式的管理。 TortoiseSVN TortoiseSVN 是…

ICG-Azide/Alkyne吲哚菁绿标记叠氮/炔基-星戈瑞

ICG-Azide 吲哚菁绿标记叠氮 分子式&#xff1a;C48H56N6O4S 分子量&#xff1a;813.07 外观&#xff1a;固体/粉末 激发、发射波长:785/821nm 规格&#xff1a;mg 溶解性&#xff1a;溶于DMSO或DMF ICG-Azide是一种新型的荧光探针&#xff0c;其化学性质独特。它是一种含…

MongoDb简单使用

介绍 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。 它支持的数据结构非常松…

leetcode50 快速幂

https://leetcode.cn/problems/powx-n/实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c; x n x^n xn &#xff09;。 示例 1&#xff1a;输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000 示例 2&#xff1a;输入&#xff1a;…

安全工程师必读 ——《安全技术工具扫盲》

安全技术 SAST - 静态应用安全测试&#xff08;白盒检测&#xff09;DAST - 动态应用安全测试&#xff08;黑盒检测&#xff09;IAST - 交互式应用安全测试&#xff08;灰盒检测&#xff09;RASP - 运行时应用自我保护Dependency Scanning&#xff08;依赖项安全扫描&#xff…

袋鼠云产品功能更新报告05期|应有尽“优”,数栈一大波功能优化升级!

这段时间&#xff0c;我们对产品本身以及客户反馈的一些问题进行了持续的更新和优化&#xff0c;包括对离线平台数据同步功能的更新&#xff0c;数据资产平台血缘问题的优化等&#xff0c;力求满足不同行业用户的更多需求&#xff0c;为用户带来极致的产品使用体验。 以下为袋…

边缘计算节点是啥?边缘计算与CDN有什么关系?一文带你了解边缘计算节点BEC(2)

上文已经为大家详细介绍了边缘计算节点 BEC 与 CDN 之间的关系&#xff0c;对于 CDN 而言&#xff0c;边缘计算不仅仅只增加了存储、计算的功能&#xff0c;还有网络、安全等等一系列的基础能力。 如果大家感兴趣&#xff0c;欢迎阅读我们上一篇文章 边缘计算节点是啥&#x…

如何在pythonanywhere上部署Django项目?

PythonAnywhere是一个基于云的Python开发平台&#xff0c;它允许用户在云端运行、开发和部署&#xff0c;该平台提供了Python编程环境、Web框架、数据库和Web服务器等工具&#xff0c;让用户可以轻松地创建和部署Python应用程序。PythonAnywhere还提供了免费和付费的服务&#…

Java设计模式其一(概述、UML图、软件设计模式) | 穷其道者,归处亦同

文章目录 1. 设计模式概述1.1 软件设计模式的概念1.2 学习设计模式的必要性1.3 设计模式分类 2. UML图2.1 类图概述2.2 类图的作用2.3 类图的表示法2.3.1 类的表达方式2.3.2 类与类之间关系的表达方式 3. 软件设计原则3.1 开闭原则3.2 里氏替换原则3.3 依赖倒转原则3.4 接口隔离…

Java【多线程基础6】定时器的使用方式 + 模拟实现Timer

文章目录 前言一、定时器1, 什么是定时器2, 如何使用定时器 二、模拟实现定时器1, 初步实现2, 问题改善 总结 前言 &#x1f4d5;各位读者好, 我是小陈, 这是我的个人主页 &#x1f4d7;小陈还在持续努力学习编程, 努力通过博客输出所学知识 &#x1f4d8;如果本篇对你有帮助, …