# server.php
服务器基础配置
```php
/**
* 服务器设置
*/
$config['server']['send_use_task_num'] = 20;
$config['server']['set'] = [
'log_file' => LOG_DIR."/swoole.log",
'log_level' => 5,
'reactor_num' => 2, //reactor thread num
'worker_num' => 4, //worker process num
'backlog' => 128, //listen backlog
'open_tcp_nodelay' => 1,
'dispatch_mode' => 5,
'task_worker_num' => 5,
'task_max_request' => 5000,
'enable_reuse_port' => true,
'heartbeat_idle_time' => 120,//2分钟后没消息自动释放连接
'heartbeat_check_interval' => 60,//1分钟检测一次
'max_connection' => 100000
];
//协程超时时间
$config['coroution']['timerOut'] = 5000;
//是否启用自动reload
$config['auto_reload_enable'] = true;
//是否允许访问Server中的Controller,如果不允许将禁止调用Server包中的Controller
$config['allow_ServerController'] = true;
```
## worker_num
开启的worker进程数量,这里建议设置为cpu核数一致,比如你是4核那么worker_num设置为4
## task_worker_num
开启的task进程数量,task是同步进程主要处理耗时任务,这里如果用到task请设置task进程数。
> Task是同步模式很多功能受到限制,SD3.0建议使用自定义进程实现耗时任务的执行。
## heartbeat_idle_time
心跳,这里服务器将检测客户端是否有消息到达,如果消息间隔超过heartbeat_idle_time设置的值,那么该客户端将被踢下线,heartbeat_idle_time单位为秒
>如果不想检测心跳可以删除此配置
## heartbeat_check_interval
服务器间隔heartbeat_check_interval(单位秒)时间检测一次心跳
>如果不想检测心跳可以删除此配置
## max_connection
这里set中的max_connection是设置服务器最大连接数,如果超过则会拒绝。
max_connection越大申请的内存越大,运行时可能会报错,那么需要调整下面的参数。
ulimit -n 要调整为100000甚至更大。 命令行下执行 ulimit -n 100000即可修改。如果不能修改,需要设置 /etc/security/limits.conf,加入
```
* soft nofile 262140
* hard nofile 262140
root soft nofile 262140
root hard nofile 262140
* soft core unlimited
* hard core unlimited
root soft core unlimited
root hard core unlimited
```
注意,修改limits.conf文件后,需要重启系统生效。
## config['coroution']['timerOut']
设置默认的协程超时时间,这里单位为毫秒。
## config['auto_reload_enable']
是否启动自动reload功能,开启后有代码更新会自动reload,不需要开发者重启服务器。
>如果没有装inotify扩展会导致cpu占用率极高,建议安装inotify扩展
>线上环境不建议开启
## allow_ServerController
是否允许访问Server中的Controller,如果不允许将禁止调用Server包中的Controller
- SD3.X简介
- 捐赠SD项目
- VIP服务
- 基础篇
- 搭建环境
- 使用Composer安装/更新SD框架
- 启动命令
- 开发注意事项
- 框架配置
- 配置文件夹
- server.php
- ports.php
- business.php
- mysql.php
- redis.php
- timerTask.php
- log.php
- consul.php
- catCache.php
- client.php
- 自定义配置
- 框架入口
- MVC架构
- 加载器-Loader
- 控制器-Controller
- 模型-Model
- 视图-View
- 同步任务-Task
- 封装器
- Swoole编程指南-EOF协议
- Swoole编程指南-固定包头协议
- 封装器-Pack
- 路由器
- TCP相关
- 绑定UID
- Send系列
- Sub/Pub
- 获取服务器信息
- Http相关
- HttpInput
- HttpOutput
- 默认路由规则
- WebSocket相关
- 使用SSL
- 公共函数
- 进阶篇
- 内核优化
- 封装器路由器原理剖析
- 对象池
- 上下文-Context
- 中间件
- 进程管理
- 创建自定义进程
- 进程间RPC
- 自定义进程如何使用连接池
- 异步连接池
- Redis
- Mysql
- Mqtt
- HttpClient
- Client
- AMQP
- RPC
- 日志工具-GrayLog
- 微服务-Consul
- Consul基础
- 搭建Consul服务器
- SD中Consul配置
- 微服务
- 选举-Leader
- Consul动态配置定时任务
- 熔断与降级
- 集群-Cluster
- 高速缓存-CatCache
- 万物-Actor
- Actor原型
- Actor的创建
- Actor间的通讯
- 消息派发-EventDispatcher
- 延迟队列-TimerCallBack
- 协程
- 订阅与发布
- MQTT简易服务器
- AMQP异步任务调度
- 自定义命令-Console
- 调试工具Channel
- 特别注意事项
- 日常问题总结
- 实践案例
- 物联网自定义协议
- Actor在游戏的应用
- Mongodb以及一些同步扩展的使用
- 自定义进程使用MQTT客户端
- 开发者工具
- SDHelper