开发者社区 > 云原生 > Serverless > 正文

函数计算,我使用nginx的示例发现nginx的配置不支持绝对路径

函数计算,我使用nginx的示例发现nginx的配置不支持绝对路径

提问45.png

我这么配, 按理说访问 域名/my.html不就是映射到绝对路径/code/my.html吗?但是我发现不是, 它映射到了/usr/shared/nginx/html/code/my.html去了这个应该怎么处理呀,用命令把/code里面的资源拷贝到/usr/shared/nginx/html/下去?

展开
收起
云原生那些事 2023-07-16 21:05:36 166 0
3 条回答
写回答
取消 提交回答
  • 在函数计算中使用 Nginx 示例时,确实存在配置不支持绝对路径的问题。这是因为函数计算的运行环境是无状态的,且没有本地文件系统供 Nginx 读取静态文件。

    为了解决这个问题,有两种常见的方法可以考虑:

    1. 使用相对路径:将静态文件(如 HTML、CSS、JavaScript 文件)与 Nginx 配置文件放在同一个目录中,并使用相对路径进行配置。例如,在 nginx.conf 中指定相对于配置文件位置的路径,如下所示:
    server {
        listen 9000;
        location / {
            root html;
            index index.html;
        }
    }
    

    在上述示例中,假设 nginx.confhtml 目录位于同一级目录。Nginx 将会根据 root 指令和 URI 进行查找并返回相应的静态文件。

    1. 结合对象存储服务(OSS):使用阿里云的对象存储服务(OSS)来托管静态文件,并通过 CDN 访问它们。您可以将静态文件上传至 OSS 存储桶中,然后通过 CDN 提供的访问链接来请求这些文件。这种方式可以提供更好的性能和可伸缩性。

    您可以根据具体需求选择适合自己的解决方案。如果只是简单的静态文件托管,使用相对路径可能是更简单的选择。如果需要更高级的功能和性能,结合 OSS 和 CDN 可以提供更好的体验。

    2023-07-23 09:24:11
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    确切的原因是函数计算并没有提供全局文件系统,所以不支持绝对路径。

    函数计算是在一种无服务器(Serverless)的运行环境下执行你的代码。这意味着:

    不提供物理服务器,也就没有固定文件系统。
    每次执行函数时,都会为你部署一个全新的执行环境。
    因此,函数计算中:

    不支持类似:/usr/local/xxx 这样的绝对路径
    只支持相对路径,从函数代码目录开始
    举个例子,如果你的函数代码目录结构是:

    /function
    index.js
    nginx.conf
    那么在index.js中配置nginx.conf的路径应该是:

    js
    Copy
    {
    nginxConfPath: "./nginx.conf" // 相对路径
    }
    而不是:/nginx.conf这样的绝对路径。

    这样每次执行函数时,函数计算会:

    检出你函数代码目录(/function)
    在新的运行环境中运行你的index.js
    index.js 能找到相对路径 ./nginx.conf

    2023-07-22 16:07:13
    赞同 展开评论 打赏
  • 创建函数,自定义运行时,可以选到nginx示例,可以参考一下

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-07-16 21:08:48
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载