服务器配置 Server

Strapi 为其服务器配置提供了单一入口点文件。

./config/server.js 文件用于定义 Strapi 应用程序的服务器配置。

server.js 文件的更改需要重建管理面板。保存修改后的文件后,在终端中运行 yarn buildnpm run build 来实现更改。

可用选项

./config/server.js 文件可以包含以下参数:

参数说明类型默认
host

❗️ 必需
主机名字符串localhost
port

❗️ 必需
服务器应在其上运行的端口。整数1337
app.keys

❗️ 必需
声明会话密钥(基于 Koa session),由 session 中间件用于用户和权限插件和文档插件。字符串数组undefined
socket在套接字上监听。当提供此选项时,主机和端口是装饰性的,同样,当使用此选项时,使用 url 来生成正确的 url。此选项对于运行不公开端口的服务器并在同一台机器上使用代理服务器很有用,例如 Heroku nginx buildpack字符串 | 整数/tmp/nginx.socket
emitErrors当错误发生时,允许将错误发送到 koa,以便附加自定义逻辑或使用错误报告服务。布尔值false
url服务器的公共 URL。许多不同功能都需要它(例如:重置密码、第三方登录提供商等)。还启用代理支持,如 Apache 或 Nginx,例如:https://mywebsite.com/api。url 可以是相对的,如果是,则使用 http://${host}:${port} 作为基本 URL。但建议使用绝对 URL。字符串''
proxy设置 koa 变量 app.proxy。当为 true 时,代理标头字段将被信任。布尔值false
globalProxy定义在 strapi.fetch 方法内发出的所有外部请求的代理(用于许可证检查、遥测和 webhook)。如果 Strapi 项目位于正向代理后面,则使用。字符串
cronCron 配置(由 node-schedule 提供支持)对象
cron.enabled启用或禁用 CRON 作业 以在特定日期安排作业。布尔值false
cron.tasks声明 CRON 作业 在特定日期运行。对象
dirsStrapi 使用的不同目录的路径配置。对象
dirs.public自定义公共文件夹的路径。字符串./public
webhooks.populateRelations启用或禁用在 webhooks 中接收填充的关系布尔值true
httpStrapi 使用的 http 服务器的配置对象
http.serverOptions传递给 http createServer 的选项http.serverOptions{}

配置

./config/server.js 最小配置需要 hostport 参数进行开发。完整配置中可以包含其他参数。

环境配置(即使用 env() 帮助程序)不需要包含所有值,只要它们存在于默认的 ./config/server.js 中即可。

任何新项目创建的默认配置至少应包含以下内容:

最小配置

js
./config/server.js
js
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
})

完整配置

以下是完整配置文件的示例。并非所有这些键都是必需的(请参阅可用选项)。

js
./config/server.js
js
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
  socket: '/tmp/nginx.socket', // 仅在绝对需要时使用
  emitErrors: false,
  url: env('PUBLIC_URL', 'https://api.example.com'),
  proxy: env.bool('IS_PROXIED', true),
  cron: {
    enabled: env.bool('CRON_ENABLED', false),
  },
})