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

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

猜你喜欢

转载自blog.csdn.net/GSl0408/article/details/130647649