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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的可移植容器。OpenResty是一个基于Nginx的Web应用服务器,它集成了Lua脚本语言,可以通过编写Lua脚本来扩展Nginx的功能。 要在Docker中部署OpenResty,可以按照以下步骤进行操作: 1. 首先,你需要安装Docker。你可以根据你的操作系统选择合适的安装方式,并确保Docker已经成功安装并运行。 2. 创建一个Dockerfile,用于构建OpenResty的镜像。在Dockerfile中,你可以指定基础镜像、安装OpenResty及其依赖项、配置Nginx等。以下是一个简单的示例: ``` # 使用官方提供的OpenResty基础镜像 FROM openresty/openresty:latest # 安装其他依赖项 RUN apt-get update && apt-get install -y \ # 安装其他需要的软件包 # 复制配置文件到容器中 COPY nginx.conf /usr/local/openresty/nginx/conf/nginx.conf # 暴露端口 EXPOSE 80 # 启动Nginx服务 CMD ["/usr/local/openresty/bin/openresty", "-g", "daemon off;"] ``` 3. 创建一个nginx.conf文件,用于配置Nginx。你可以根据你的需求进行配置,例如设置监听端口、定义虚拟主机等。 4. 构建镜像。在Dockerfile所在的目录下执行以下命令来构建镜像: ``` docker build -t my-openresty . ``` 其中,`my-openresty`是你给镜像起的名称,可以根据需要进行修改。 5. 运行容器。执行以下命令来运行容器: ``` docker run -d -p 80:80 my-openresty ``` 其中,`my-openresty`是你之前构建的镜像名称。 现在,你已经成功在Docker中部署了OpenResty。你可以通过访问`http://localhost`来验证OpenResty是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GG-0408

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值