赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 实践教程
  5. 应用开发和部署
  6. 使用SAE部署Nginx服务

使用SAE部署Nginx服务

  • 应用开发和部署
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

Nginx可以用于搭建静态网站,也可以实现反向代理(将客户端的请求转发到其他后端应用)。本文将指引您使用SAE部署Nginx服务。

方案概览

如下图所示,Nginx能够根据客户端请求的路径,返回应用自身包含的静态资源(如HTML页面),或者将请求转发到其他后端应用,并将处理结果返回给客户端。

image
如果您期望仅搭建静态网站,也可以通过部署Nginx服务来实现。这种情况下,您无需部署后端应用,Nginx配置中也无需包含转发规则。

1. 准备静态网站资源

本文使用以下示例文件:nginx-demo.zip。

其中,html/路径下包含本例中使用的静态网站资源:

  • index.html:默认首页。

  • error.html:默认404错误页面。

实际环境中,请根据您的需求创建静态网站资源(如HTML页面、图片、CSS样式等)。

2. 编写Nginx配置文件

示例中的conf/路径下包含Nginx的配置文件nginx.conf,相关说明如下。

实际环境中,请根据您的需求修改Nginx配置文件。更多信息,请参考Nginx官方文档。

配置静态资源访问规则

...
    server {
        listen       80 default_server; # 设置Web服务的监听端口为80
        ...
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;

        # 客户端访问根路径时需要返回的页面
        location / {
            root /usr/share/nginx/html; # 容器中存放静态网站资源的路径。制作镜像时会将本地的静态网站资源复制到镜像内的这个路径中。
            index index.html;
        }

        # 客户端访问出现404错误时需要返回的页面
        error_page 404 /error.html;
        location = /error.html {
            root /usr/share/nginx/html;
        }
    }
...

配置转发规则

本文假定您已部署后端应用,并可以从公网访问后端应用。

示例中,后端应用的访问地址和端口是121.40.xx.xx:80,期望将请求路径匹配/api/*的请求转发到后端应用,并且转发时将请求路径重定向为/*,则配置如下:

...
        # 配置请求转发规则
        location /api/ {
            proxy_pass http://121.40.xx.xx:80/;
        }
...
如果您期望仅搭建静态网站,则无需配置转发规则。
如果部署后的Nginx服务可以通过VPC网络访问到后端应用,则转发规则中可以使用私网IP。

3. 制作镜像并上传到镜像仓库

您可以在本地环境或ECS环境中制作镜像,前提是环境中已安装Docker工具。
  1. 编写Dockerfile文件。示例中Dockerfile文件的说明如下:

    # 指定Nginx基础镜像
    FROM nginx:1.20.2
    
    # 复制本地的Nginx配置文件到容器环境的指定路径
    COPY conf/nginx.conf /etc/nginx/nginx.conf
    
    # 复制本地的静态资源文件到容器环境的指定路径
    COPY html /usr/share/nginx/html
  2. 构建镜像。在Dockerfile文件所在路径执行以下命令:

    docker build . -t my-nginx:1.0
    # .:表示在当前目录中构建镜像
    # -t:指定镜像名称、镜像tag
  3. 测试镜像。

    # 运行镜像
    docker run -d -p 80:80 my-nginx:1.0
    
    # 需要环境中已安装curl命令
    # 测试静态资源访问
    curl localhost:80/
    # 测试将请求转发到后端应用(仅适用于Nginx服务通过公网IP转发到后端应用的场景)
    curl localhost:80/api/
  4. 将制作成功的镜像推送至阿里云ACR镜像仓库。具体操作,请参考推送拉取镜像(企业版)或推送拉取镜像(个人版)。

4. 通过镜像部署Nginx并配置网络访问

  1. 通过已推送到ACR中的镜像部署Nginx服务。具体操作,请参考通过镜像部署应用。

  2. 如果希望Nginx服务能够将请求转发到后端应用的公网地址,需要为Nginx服务所在的VPC配置NAT网关(默认情况下,部署在SAE的应用是无法访问公网的)。具体操作,请参考配置NAT网关使SAE应用能访问公网。

    如果Nginx服务转发请求时使用后端应用的私网地址,则无需配置NAT网关。
  3. 为Nginx服务配置公网访问地址,使客户端可以通过公网IP访问Nginx服务。具体操作,请参考为应用绑定CLB并生成应用的公网或私网访问IP,容器端口需要设置为80。

    如果您希望客户端通过域名访问Nginx服务,则需要为公网IP配置域名解析。
  4. 通过浏览器访问Nginx服务,进行测试。

5. (可选)应用部署后修改Nginx配置文件

修改Nginx配置文件无需重新构建镜像,您可以通过ConfigMap向容器中注入配置文件的方式实现配置管理,提高效率。

重要

通过ConfigMap注入到容器中的配置文件会覆盖容器中的原始配置文件。

  1. 在Nginx应用所在的命名空间中创建配置项(ConfigMap)。具体操作,请参考创建配置项,配置项名称设置为nginx,添加变量nginx.conf(即Nginx配置文件名),变量的值为修改后的配置文件内容。

    lQEe08Yf6s

  2. 通过ConfigMap注入配置文件,并重新部署应用。具体操作,请参考注入配置信息。配置项选择上一步中创建的nginx,键选择nginx.conf,挂载路径设置为/etc/nginx/nginx.conf(即镜像中Nginx配置文件的路径)。

    8qK49P9SJq

  3. 应用部署成功后,可以通过Webshell登录到具体的应用实例中,查看配置文件是否修改成功。

    p7GRcntPRp

相关文章

通过命名空间实现开发环境、测试环境和生产环境的隔离 2025-04-17 10:59

如果您在部署应用时需要区分开发环境、测试环境和生产环境,您可以为每套环境创建一个命名空间。同一命名空间的应用之间可以通过内网实现方法调用,不同命名空间的应用可以实现相互隔离。 方案概览 本文将指引您创建dev、test、prod三个命名空间,分别用

开发场景:通过端云互联实现开发和测试环境隔离 2025-04-17 10:59

本文通过模拟真实的调用链路,为您演示如何自动实现Serverless 应用引擎 SAE(Serverless App Engine)本地开发环境与测试环境的流量隔离,方便您快速开发联调,提高开发效率。

开发场景:基于消息队列RocketMQ版实现环境隔离 2025-04-17 10:59

本文介绍如何在Serverless 应用引擎 SAE(Serverless App Engine)上基于阿里云云消息队列 RocketMQ 版实现环境隔离,您可以在不修改任何业务代码的情况下,实现异步场景下的流量控制。

线上场景:基于自建Spring Cloud Gateway或Zuul网关实现全链路灰度 2025-04-17 10:59

本文通过示例演示如何在SAE上实现全链路灰度发布, 可以在不需要修改您的任何业务代码的情况下,实现全链路流量控制。 准

云安全中心的Serverless资产如何绑定微服务应用(邀测) 2025-04-17 10:59

云安全中心的Serverless资产绑定微服务应用后,云安全中心可对微服务应用进行漏洞扫描、入侵检测和基线检查,极大提升应用安全的同时也优化了成本效益,为SAE应用构筑坚实的安全防线。本文

使用SAE部署Nginx服务 2025-04-17 10:59

Nginx可以用于搭建静态网站,也可以实现反向代理(将客户端的请求转发到其他后端应用)。本文将指引您使用SAE部署Nginx服务。 方案概览 如下图所示,Nginx能够根据客户端请求的路径,返回应用自身包含的静态资源(如HTML页面),或者将请求转发到其他后端应用,并将处理结果返回给客户端。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号