You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rebar3应用中「应用配置文件」是什么?inets httpd配置放何处?

在Rebar3应用中配置Inets HTTP服务器的位置

我来帮你梳理清楚这个问题哈~

首先,inets httpd服务器文档指出:

以下内容需放入Erlang节点的应用配置文件,以在应用启动时启动HTTP服务器:

[{inets, [{services, [{httpd, [{proplist_file, "/var/tmp/server_root/conf/8888_props.conf"}]}, {httpd, [{proplist_file, "/var/tmp/server_root/conf/8080_props.conf"}]}]}]}].

那在rebar3创建的应用里,这段代码该放哪儿呢?我们再结合OTP应用文档的内容来看:

7.8 配置应用
应用可通过配置参数进行配置,这些参数是.app文件中由env键指定的{Par,Val}元组列表:

{application, ch_app, [
    {description, "Channel allocator"},
    {vsn, "1"},
    {modules, [ch_app, ch_sup, ch3]},
    {registered, [ch3]},
    {applications, [kernel, stdlib, sasl]},
    {mod, {ch_app,[]}},
    {env, [{file, "/usr/local/log"}]}
]}.

Par为原子,Val可为任意项。

这里看起来格式有差异,但其实很好适配:你只需要把inets要求的配置内容,放到rebar3项目中应用的.app.src文件(编译后会生成对应的.app文件)的env字段里就行。

具体操作步骤:

  • 找到你应用目录下src/[你的应用名].app.src文件
  • 找到其中的{env, []}配置项,把inets的配置调整成键值对形式填进去,最终大概是这样:
{application, your_app_name, [
    % ... 其他原有配置项 ...
    {env, [
        {inets, [{services, [
            {httpd, [{proplist_file, "/var/tmp/server_root/conf/8888_props.conf"}]},
            {httpd, [{proplist_file, "/var/tmp/server_root/conf/8080_props.conf"}]}
        ]}]}
    ]}
]}.

这样当你的应用启动时,inets就能读取到这些配置,自动启动指定的HTTP服务器了。

另外还有一种可选方式:把配置放到专门的sys.config文件中,然后在rebar.config里指定加载这个配置文件的路径,启动应用时加载也能生效。不过更贴合OTP应用规范的还是第一种方式,让配置和应用本身绑定在一起。

内容的提问来源于stack exchange,提问作者7stud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:05:25