服务器配置
¥Server configuration
./config/server.js
文件用于定义 Strapi 应用的服务器配置。
¥The ./config/server.js
file is used to define the server configuration for a Strapi application.
对 server.js
文件的更改需要重建管理面板。保存修改后的文件后,在终端中运行 yarn build
或 npm run build
以实现更改。
¥Changes to the server.js
file require rebuilding the admin panel. After saving the modified file run either yarn build
or npm run build
in the terminal to implement the changes.
可用选项
¥Available options
./config/server.js
文件可以包含以下参数:
¥The ./config/server.js
file can include the following parameters:
范围 | 描述 | 类型 | 默认 |
---|---|---|---|
host ❗️必填 | 主机名 | string | localhost |
port ❗️必填 | 服务器应运行的端口。 | integer | 1337 |
app.keys ❗️必填 | 声明会话密钥(基于 相思会议),session 中间件将其用于用户和权限插件以及文档插件。 | 字符串数组 | undefined |
socket | 在套接字上监听。当提供此选项时,主机和端口是装饰性的,同样在使用此选项时使用 url 生成正确的 URL。此选项对于在不公开端口的情况下运行服务器并在同一台计算机上使用代理服务器(例如 Heroku nginx 构建包)非常有用 | 字符串| 整数 | /tmp/nginx.socket |
emitErrors | 允许在发生错误时将错误发送到 koa ,以便附加自定义逻辑或使用错误报告服务。 | 布尔值 | false |
url | 服务器的公共 url。许多不同的功能都需要(例如:重置密码、第三方登录提供者等)。还启用代理支持,例如 Apache 或 Nginx,例如:https://mywebsite.com/api 。url 可以是相对的,如果是,则使用 http://${host}:${port} 作为基本 url。但建议使用绝对 url。 | string | '' |
proxy | 代理配置 | object | |
proxy.global | 为所有外部请求定义代理。如果 Strapi 项目位于转发代理后面,则使用。 | string | |
proxy.fetch | strapi.fetch 内发出的所有请求的代理(用于许可证检查、遥测和 webhook) | 字符串 | ProxyAgent.Options | |
proxy.http | 所有(非获取)http 请求的代理 | string | |
proxy.https | 所有(非获取)https 请求的代理 | string | |
proxy.koa | 设置 koa 变量 app.proxy 。当 true 时,代理头字段将被信任。 | 布尔值 | false |
cron | Cron 配置(由 node-schedule 提供支持) | object | |
cron.enabled | 启用或禁用 CRON 作业 以在特定日期安排作业。 | 布尔值 | false |
cron.tasks | 声明 CRON 作业 在特定日期运行。 | object | |
dirs | Strapi 使用的不同目录的路径配置。 | object | |
dirs.public | 自定义公用文件夹的路径。 | string | ./public |
http | Strapi 使用的 http 服务器的配置 | object | |
http.serverOptions | 传递给 http createServer 的选项 | http.serverOptions | |
transfer.remote.enabled | 切换使用 转移特性 的能力 | 布尔值 | true |
logger.startup.enabled | 切换终端中的启动消息 | 布尔值 | true |
logger.updates.enabled | 切换有关在终端中更新 strapi 的通知消息 | 布尔值 | true |
配置
¥Configurations
./config/server.js
最低配置需要 host
和 port
参数进行开发。可以包含附加参数以实现完整配置。
¥The ./config/server.js
minimal configuration requires the host
and port
parameters for development. Additional parameters can be included for a full configuration.
环境配置(即使用 env()
辅助程序)不需要包含所有值,只要它们存在于默认 ./config/server.js
中即可。
¥Environmental configurations (i.e. using the env()
helper) do not need to contain all the values so long as they exist in the default ./config/server.js
.
使用任何新项目创建的默认配置至少应包括以下内容:
¥The default configuration created with any new project should at least include the following:
- Minimal configuration
- Full configuration
- JavaScript
- TypeScript
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
app: {
keys: env.array('APP_KEYS'),
},
});
export default ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
app: {
keys: env.array('APP_KEYS'),
},
});
以下是完整配置文件的示例。并非所有这些键都是必需的(参见 可用选项)。
¥The following is an example of a full configuration file. Not all of these keys are required (see available options).
- JavaScript
- TypeScript
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', // only use if absolutely required
emitErrors: false,
url: env('PUBLIC_URL', 'https://api.example.com'),
proxy: env.bool('IS_PROXIED', true),
cron: {
enabled: env.bool('CRON_ENABLED', false),
},
transfer: {
remote: {
enabled: false,
},
},
logger: {
updates: {
enabled: false,
},
startup: {
enabled: false,
},
},
});
export default ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
app: {
keys: env.array('APP_KEYS'),
},
socket: '/tmp/nginx.socket', // only use if absolutely required
emitErrors: false,
url: env('PUBLIC_URL', 'https://api.example.com'),
proxy: env.bool('IS_PROXIED', true),
cron: {
enabled: env.bool('CRON_ENABLED', false),
},
transfer: {
remote: {
enabled: false,
},
},
logger: {
updates: {
enabled: false,
},
startup: {
enabled: false,
},
},
});