test ssl demos

This commit is contained in:
shuxin   zheng 2020-01-05 10:32:38 +08:00
parent 7f851cc437
commit 952a610187
6 changed files with 155 additions and 9 deletions

View File

@ -1,3 +1,8 @@
#!/bin/sh
./aio_client -d ../libmbedtls_all.so -c 10 -n 100 -S -l 127.0.0.1:9800
os=$(echo `uname -s`)
if [ $os == 'Darwin' ]; then
./aio_client -d ../libmbedtls_all.dylib -c 10 -n 10000 -S -l 127.0.0.1:9800
else
./aio_client -d ../libmbedtls_all.so -c 10 -n 10000 -S -l 127.0.0.1:9800
fi

View File

@ -1,3 +1,8 @@
#!/bin/sh
./aio_server -d ../libmbedtls_all.so -K ../ssl_key.pem -C ../ssl_crt.pem
os=$(echo `uname -s`)
if [ $os == 'Darwin' ]; then
./aio_server -d ../libmbedtls_all.dylib -K ../ssl_key.pem -C ../ssl_crt.pem
else
./aio_server -d ../libmbedtls_all.so -K ../ssl_key.pem -C ../ssl_crt.pem
fi

View File

@ -0,0 +1,120 @@
service http_server {
# 进程是否禁止运行
master_disable = no
# 服务地址及端口号
# for master_type = inet
# master_service = 127.0.0.1:5001
# for master_type = unix
# master_service = echo.sock
# for master_type = sock
master_service = 1443
# 服务监听为域套接口
# master_service = aio_echo.sock
# 服务类型
# master_type = inet
# master_type = unix
master_type = sock
# 当子进程异常退出时如果该值非空则将子进程异常退出的消息通知该服务
# master_notify_addr = 127.0.0.1:5801
# 邮件通知接收者
# master_notify_recipients = zhengshuxin@hotmail.com
# 是否允许延迟接受客户端连接如果为0则表示关闭该功能如果大于0则表示打开此功能
# 并且此值代表延迟接受连接的超时值超过此值时如果客户端依然没有发来数据则操作
# 系统会在系统层直接关闭该连接
# master_defer_accept = 0
# 是否只允许私有访问, 如果为 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 = https_server
# 进程日志记录文件
master_log = {install_path}/var/log/https_server
# 调试日志方式格式tag:level; tag:level; tab:level, all:1; 101:2
# master_debug =
# 进程启动参数只能为: -u [是否允许以某普通用户的身份运行]
# master_args =
# 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值
# master_env = mempool_limit:512000000
# 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/ioctl_echo.sem
# 当启动多个子进程实例时该开关控制多个子进程在接收连接时是否向 acl_master 发送消息报告自己的状态
# master_status_notify = 1
# 是否允许产生 core 文件
# ioctl_enable_core = 1
# 每个进程实例处理连接数的最大次数超过此值后进程实例主动退出
ioctl_use_limit = 0
# 每个进程实例的空闲超时时间超过此值后进程实例主动退出
ioctl_idle_limit = 0
# 记录进程PID的位置(对于多进程实例来说没有意义)
ioctl_pid_dir = {install_path}/var/pid
# 进程运行时所在的路径
ioctl_queue_dir = {install_path}/var
# 读写超时时间, 单位为秒
ioctl_rw_timeout = 120
# 读缓冲区的缓冲区大小
ioctl_buf_size = 8192
# 每次 accept 时的循环接收的最大次数
ioctl_max_accept = 25
# 在并发访问量非常低的情况下如访问量在 10 / 以下时可以找开此值(即赋为1)
# 以加速事件循环过程, 从而防止服务进程阻塞在 select 上的时间过长而影响访问速度
# ioctl_enable_dog = 1
# 进程运行时的用户身份
ioctl_owner = root
# select 进行循环时的时间间隔
# 单位为秒
ioctl_delay_sec = 1
# 单位为微秒
ioctl_delay_usec = 500
# 采用事件循环的方式: select(default), poll, kernel(epoll/devpoll/kqueue)
ioctl_event_mode = kernel
# 事件引擎检查所有空闲描述符的时间间隔(毫秒)
# ioctl_check_inter = 100
# 当启用 master_dispatch 连接分开服务后该配置指定 master_dispatch 所监听的
# 域套接口的全路径这样本子进程就可以从 master_dispatch 获得客户端连接
# ioctl_dispatch_addr = {install_path}/var/private/dispatch.sock
# ioctl_dispatch_addr 开启后下面参数控制本服务进程发给前端 master_dispatch 的服务标识信息
# ioctl_dispatch_type = default
# 线程池的最大线程数
ioctl_max_threads = 250
# 线程池中工作线程等待任务时间间隔(毫秒)
# ioctl_schedule_wait = 50
# 线程任务调度的时间间隔大于此值(毫秒)后记警告日志
# ioctl_schedule_warn = 100
# 线程处理任务拥堵数超过此阀值后记警告日志设为 0 则内部只有当拥堵任务数超过总线程数的 10 倍时才报警
# ioctl_qlen_warn = 0
# 线程的堆栈空间大小单位为字节0表示使用系统缺省值
ioctl_stacksize = 0
# 允许访问 udserver 的客户端IP地址范围
ioctl_access_allow = all
# acl_master 退出时如果该值置1则该程序不等所有连接处理完毕便立即退出
ioctl_quick_abort = 1
############################################################################
# 应用自己的配置选项
# crt_file = {install_path}/conf/ssl/mm263com1.crt
# key_file = {install_path}/conf/ssl/mm263com.key
crt_file = ../ssl_crt.pem
key_file = ../ssl_key.pem
libssl_path = ../libmbedtls_all.dylib
# libssl_path = ../libpolarssl.dylib
}

View File

@ -44,8 +44,9 @@ master_service::master_service()
master_service::~master_service()
{
if (conf_)
if (conf_) {
delete conf_;
}
}
static acl::sslbase_io* setup_ssl(acl::socket_stream& conn, acl::sslbase_conf& conf)
@ -86,15 +87,18 @@ static acl::sslbase_io* setup_ssl(acl::socket_stream& conn, acl::sslbase_conf& c
bool master_service::thread_on_read(acl::socket_stream* conn)
{
http_servlet* servlet = (http_servlet*) conn->get_ctx();
if (servlet == NULL)
if (servlet == NULL) {
logger_fatal("servlet null!");
}
if (conf_ == NULL)
if (conf_ == NULL) {
return servlet->doRun("127.0.0.1:11211", conn);
}
acl::sslbase_io* ssl = setup_ssl(*conn, *conf_);
if (ssl == NULL)
if (ssl == NULL) {
return false;
}
return servlet->doRun("127.0.0.1:11211", conn);
}
@ -125,8 +129,7 @@ void master_service::thread_on_close(acl::socket_stream* conn)
conn->sock_handle());
http_servlet* servlet = (http_servlet*) conn->get_ctx();
if (servlet)
delete servlet;
delete servlet;
}
void master_service::thread_on_init()

View File

@ -0,0 +1,8 @@
#!/bin/sh
os=$(echo `uname -s`)
if [ $os == 'Darwin' ]; then
./https_server alone https_server2.cf
else
./https_server alone https_server.cf
fi

View File

@ -1,2 +1,7 @@
#!/bin/sh
./ssl_client -d ../libmbedtls_all.dylib -s 127.0.0.1:9800 -c 10 -n 10000
os=$(echo `uname -s`)
if [ $os == 'Darwin' ]; then
./ssl_client -d ../libmbedtls_all.dylib -s 127.0.0.1:9800 -c 10 -n 10000
else
./ssl_client -d ../libmbedtls_all.so -s 127.0.0.1:9800 -c 10 -n 10000
fi