service $ { # 进程是否禁止运行 master_disable = no # 服务地址及端口号 # for master_type = inet # master_service = 5200 # for master_type = unix # master_service = aio_echo.sock # for master_type = sock master_service = 5200, 127.0.0.1:5100, :5300, aio_echo.sock@unix, aio_echo2.sock@unix # 服务监听为域套接口 # master_service = aio_echo.sock # 服务类型 # master_type = inet # master_type = unix master_type = sock # 停止子进程时是否采用强行停止的方式(即给子进程发送 SIGTERM 信号) master_stop_kill = false # 当 master_stop_kill 为 true 时,该配置决定是否要等待子进程退出 master_stop_wait = false # 当系统运动 SO_REUSEPORT 功能时,本开关决定是否允许该特性 master_reuseport = yes # 是否针对监听套接口设定为非阻塞方式 master_nonblock = yes # 当子进程异常退出时,如果该值非空,则将子进程异常退出的消息通知该服务 # master_notify_addr = 127.0.0.1:5801 # 邮件通知接收者 # master_notify_recipients = zhengshuxin@hotmail.com # 是否允许延迟接受客户端连接,如果为0则表示关闭该功能,如果大于0则表示打开此功能 # 并且此值代表延迟接受连接的超时值,超过此值时如果客户端依然没有发来数据,则操作 # 系统会在系统层直接关闭该连接 # master_defer_accept = 0 # master_type = unix # 是否只允许私有访问, 如果为 y, 则域套接口创建在 {install_path}/var/log/private/ 目录下, # 如果为 n, 则域套接口创建在 {install_path}/var/log/public/ 目录下, master_private = n master_unpriv = n # 是否需要 chroot: n -- no, y -- yes master_chroot = n # 每隔多长时间触发一次,单位为秒(仅对 trigger 模式有效) master_wakeup = - # 最大进程数 master_maxproc = 1 # 预启动进程数,该值不得大于 master_maxproc master_prefork = 1 # 进程程序名 master_command = $ # 进程启动参数,只能为: -u [是否允许以某普通用户的身份运行] master_args = # 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值 # master_env = mempool_limit:512000000, mempool_use_mutex:true # master_env = logme:FALSE, priority:E_LOG_INFO, action:E_LOG_PER_DAY, flush:sync_flush, imit_size:512,\ # sync_action:E_LOG_SEM, sem_name:/tmp/aio_echo.sem # 进程日志记录文件 master_log = {install_path}/var/log/$ # 调试日志方式,格式:tag:level; tag:level; tab:level, 如:all:1; 101:2 # master_debug = # 当启动多个子进程实例时,该开关控制多个子进程在接收连接时是否向 acl_master 发送消息报告自己的状态 # master_status_notify = 1 # 是否允许产生 core 文件 # aio_enable_core = 1 # 每个进程实例处理连接数的最大次数,超过此值后进程实例主动退出 aio_use_limit = 0 # 每个进程实例的空闲超时时间,超过此值后进程实例主动退出 aio_idle_limit = 0 # 记录进程PID的位置(对于多进程实例来说没有意义) aio_pid_dir = {install_path}/var/pid # 进程运行时所在的路径 aio_queue_dir = {install_path}/var # 读写超时时间, 单位为秒 aio_rw_timeout = 120 # 读缓冲区的缓冲区大小 aio_buf_size = 8192 # 每次 accept 时的循环接收的最大次数 aio_max_accept = 25 # 每个进程当一次接收的连接数达到此值时需要通知 acl_master 一下 aio_min_notify = 1 # 进程运行时的用户身份 aio_owner = root # 用 select 进行循环时的时间间隔 # 单位为秒 aio_delay_sec = 1 # 单位为微秒 aio_delay_usec = 500 # 采用事件循环的方式: select(default), poll, kernel(epoll/devpoll/kqueue) aio_event_mode = kernel # 是否将 socket 接收与IO功能分开: yes/no, 如果为 yes 可以大大提高 accept() 速度 aio_accept_alone = yes # 线程池的最大线程数, 如果该值为0则表示采用单线程非阻塞模式. aio_max_threads = 0 # 每个线程的空闲时间. aio_thread_idle_limit = 60 # 当启用 master_dispatch 连接分开服务后,该配置指定 master_dispatch 所监听的 # 域套接口的全路径,这样本子进程就可以从 master_dispatch 获得客户端连接 # aio_dispatch_addr = {install_path}/var/private/dispatch.sock # 当 aio_dispatch_addr 开启后,下面参数控制本服务进程发给前端 master_dispatch 的服务标识信息 # aio_dispatch_type = default # 允许访问的客户端IP地址范围 # aio_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1 aio_access_allow = all # 当 acl_master 退出时,如果该值置1则该程序不等所有连接处理完毕便立即退出 aio_quick_abort = 1 ############################################################################ # 应用自己的配置选项 # 每个客户端连接的空闲时间. client_idle_limit = 60 # 是否输出当前的内存状态信息 debug_mem = 1 # 是否发送欢迎信息 send_banner = 0 }