`
zsxxsz
  • 浏览: 452041 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

一、概述

      在文章 acl 服务器编程模型介绍开发多线程进程池服务器程序---acl 服务器框架应用快速创建你的服务器程序--single进程池模型 等文章中介绍了如何基于 acl 的 C 语言版编写服务器程序,而在 用 acl::master_aio 类编写高并发非阻塞服务器程序使用 acl::master_proc 类编写多进程服务器程序使用 acl::master_threads 类编写多进程多线程服务器程序 等文章则介绍了如何基于 acl 的 C++ 语言版本编写服务器程序。本文将介绍如何部署这些服务器程序。

 

二、启动方式

      从文章 协作半驻留式服务器程序开发框架 --- 基于 Postfix 服务器框架改造 可以看出,acl 的服务器框架中有一个总控制后台程序 acl_master,由它来启动调度服务子进程程序(这些子进程程序由用户根据自身需要基于 acl 的服务器框架编写);在 acl_master 的启动脚本中,将 acl_master 的配置文件(参考:acl/dist/master/conf/main.cf)通过命令行传递给它,acl_master 程序根据其中的配置项 service_directory 指定的目录,扫描该目录下子进程的配置文件(每一个服务子程序一个配置文件),根据每个配置文件的配置项来控制、启动每个子进程,这种方式有点类似于 LINUX 系统中的 xinetd 控制启动子进程的方式,只是比 xinetd 功能更为强大、效率更高。

 

三、安装

   3.1、安装目录

      在 acl 服务器程序的安装目录(假设 acl 服务的安装目录为 /opt/acl)下,一般应有如下目录:

      /opt/acl/libexec:存放包括 acl_master 在内的所有服务器程序;

      /opt/acl/conf:存放 acl_master 的配置文件目录;

      /opt/acl/conf/service:存放用户编写的服务器程序配置文件的目录;

      /opt/acl/var/log:存放程序日志文件;

      /opt/acl/var/pid:存放程序进程 ID 文件;

      /opt/acl/var/private:当子进程监听 UNIX 域套接口时,该目录存放具有私有访问权限的 UNIX 域套接口文件;

      /opt/acl/var/public:当子进程监听 UNIX 域套接口时,该目录存放具有公共访问权限的 UNIX 域套接口文件;

      /opt/acl/sh:存放一些控制启动停止 acl_master 的脚本程序。

    3.1、在 acl/lib_acl 目录下运行 make 命令时,acl_master 服务控制程序便生成于 acl/lib_acl/master 目录下,用户可以手工拷贝该程序至 libexec 目录下,同时将 acl_master 的配置文件 acl/dist/master/conf/main.cf 拷贝至 conf 目录下,并打开 main.cf 文件,将其中的 {install_path} 字符串替换成 acl 服务安装目录;

   3.2、用户将自己基于 acl 的服务器框架模板编写的可执行程序也拷贝至 libexec 目录下,将该程序的配置文件拷贝至 conf/service 目录下,同时修改该配置文件,将其中的 {install_path} 字符串替换成 acl 服务安装目录,将 master_disable 的值设置成 no,master_command 后的值修改成用户编程的可执行程序名(不需要带程序路径);

   3.3、将 acl/dist/master/sh/ 目录下的脚本程序拷贝至安装目录的 sh 目录(如:/opt/acl/sh)下,同时将其中的 {instal_path} 修改成安装目录,并给这些脚本增加可执行权限(可用 chmod +x 完成)。

 

四、快速安装

      为了简便,acl 提供了一个简洁的方法,在 acl 的代码根目录下运行 make all; make install,则会将 acl_master 服务器主进程拷贝至 acl/dist/master/libexec/ 的 linux32/linux64 目录下,用户把自己的程序(如 acl/samples/master/ioctl_echo3/ioctl_echo3 程序)也拷贝至 acl/dist/master/libexec/linux64/ 下(如果您的系统是 linux32 位系统则需要拷贝到 acl/dist/master/libexec/linux32 目录下),同时把 acl/master/conf/service/samples/ioctl_echo.cf 配置文件拷贝到 acl/master/conf/service/ 目录下并改成用户自己的配置文件名(如 mytest.cf),打开此配置文件后将 master_disable 的值由 yes 改为 no(表示允许启动该配置文件控制的服务子进程),把其中 master_command 后的值改为用户自己的程序名(如 ioctl_echo3)。

      现在就可以安装服务器模块了,进入 acl/dist/master 目录,运行 :./setup.sh 安装路径,如:

      ./setup.sh  /opt/acl,则得到如下安装结果:

      /opt/acl/libexec: 该目录存储服务器程序(acl_master 程序也存放在该目录下);

      /opt/acl/conf:该目录存放 acl_master 程序配置文件 main.cf;

      /opt/acl/conf/service:该目录存放服务子进程的程序配置文件,该路径由 main.cf 文件指定;

      /opt/acl/var/log:该目录存放日志文件;

      /opt/acl/var/pid:该目录存放进程号文件;

      /opt/acl/sh:该目录存放控制脚本程序。

      安装完毕后,用户可以运行启动 acl_master 的启动脚本:/opt/acl/sh/start.sh,然后手工 telnet 127.0.0.1 5001 (该端口由前面的示例配置文件指定),则一个简单的回显示服务器程序就 OK 了;如果不能返回正确结果,用户可以到安装目录(本例子中的 /opt/acl/var/log/)下查看 acl_master 主进程的日志文件 acl_master 查看里面记录的错误信息。

 

五、参考

     acl 库下载:https://sourceforge.net/projects/acl/

     svn: svn://svn.code.sf.net/p/acl/code/

     github 地址:https://github.com/acl-dev/acl

     使用 acl 生成向导快速创建服务器程序:http://zsxxsz.iteye.com/blog/1851701

     QQ 群:242722074

0
0
分享到:
评论

相关推荐

    59-通过8021X认证服务器动态下发授权ACL典型配置举例.do编程资料cx

    ### 通过802.1X认证服务器动态下发授权ACL典型配置详解 #### 一、概述 802.1X认证是一种基于端口的网络接入控制标准,它能够为二层网络提供一种认证机制,使得只有认证成功的设备才能访问网络资源。在企业网络环境...

    acl_cpp:一个强大的 c++ 库,用于 win32/linux、服务器框架、HttpServlet-开源

    acl_cpp(已包含在acl项目:https://sourceforge.net/projects/acl/,请从acl项目url下载)是acl的c++封装库,acl_cpp比acl有很多有用的功能...有了acl_cpp,你会得到更强大的acl功能,快速开发,模块编程,祝你好运!

    文件API 服务,可单独部署,部署后根据调用对应的API 接口即可,上传成功后可返回服务器对应的文件路径。

    单独部署意味着这个服务可以独立于其他应用服务运行,这样可以提高系统的模块化和可扩展性。部署时,需要配置服务器环境,例如安装必要的运行时环境(如Java、Python或Node.js),设置服务器参数,如端口号、内存...

    服务器技术规格书20150320.docx

    - **混合部署**:除了服务器之外,还支持半高和全高的服务器以及内置存储系统的混合部署,提高了系统的灵活性。 #### 2.2 存储与虚拟化 - **内置磁盘阵列**:支持内置的企业级磁盘阵列,并且支持存储虚拟化技术,...

    勤哲Excel服务器WebService接口说明

    部署勤哲Excel服务器的WebService时,需要确保ESWeb模块正确安装并配置好安全性设置。具体步骤如下: 1. **安装ESWeb模块**:在安装Excel服务器服务端时,选择安装ESWeb模块。 2. **配置安全性**:确保WebService的...

    服务器技术规格书20150320.docx编程资料

    - 支持半宽和全宽服务器以及内置存储系统的混合部署。 - 内置企业级磁盘阵列,支持存储虚拟化技术,实现异构多品牌SAN存储环境的整合与统一规划使用。 **2. 扩展性与可靠性** - 采用无源背板设计,为每个服务器节点...

    深入理解Nginx模块开发与架构解析

    同时,Nginx还可以通过防火墙规则、访问控制列表(ACL)等方式限制非法访问,增强服务器安全性。 总的来说,《深入理解Nginx模块开发与架构解析》这本书将帮助读者深入了解Nginx的内部运作,包括其高效的设计、模块...

    高职计算机教学体系中云计算模块设计探讨.pdf

    在模块化教学设计中,每个模块都有其明确的教学目标,例如“云计算网络部署”模块的目标是让学生能够进行网络规划,熟悉交换机操作以及VLAN和ACL的配置。而“云计算存储部署”模块则要求学生理解存储的基本概念,...

    软件开发与项目管理-1期 KC02_模块六_任务1_电子教材.doc

    - 这种方式可以方便地将项目部署到同一服务器或不同服务器,为开发者提供了快速测试和验证功能的途径。 4. **部署流程** - 在部署 ASP.NET 网站前,需确保目标机器安装了 .Net Framework、SQL Server 数据库...

    SQL注入攻击防范中服务器端安全配置.pdf

    网络服务模块的及时更新能够确保服务器运行在最新的补丁包和稳定版本之上,从而减少已知漏洞被利用的风险。 日志系统文件的管理也是服务器安全的重要组成部分。将服务器程序访问日志存储在安全级别较高的服务器上...

    使用Java实现基于WEB的机房网络开关.pdf

    4. Java Web封装服务器:服务器Server部署了Tomcat,通过JSP页面显示交换机每个端口的状态,并提供管理界面。Apache中的commons.net包提供了进行Telnet操作的TelnetClient类。 技术要点: 1. 使用Java技术实现基于...

    wzdftpd:便携式,模块化,高效的ftp服务器-开源

    《wzdftpd:构建模块化、高效FTP服务器的开源解决方案》 在信息化时代,文件传输扮演着至关重要的角色,而FTP(File Transfer Protocol)作为其中最基础的协议之一,被广泛应用于各种场景。wzdftpd是一款专为追求...

    SVN + Apache 成功安装部署

    SVN(Subversion)是一种广泛使用的版本...通过以上步骤,你应该能成功地在Apache服务器上部署并运行SVN。这个过程虽然涉及到一些配置,但是一旦设置好,就能为团队提供一个可靠的版本控制环境,便于协作和项目管理。

    PHP文件管理系统,可以远程管理服务器上的文件,包括上传,下载,新建,编辑,复制,粘贴,删除,远程下载等

    例如,可以使用session或cookie来管理用户登录状态,以及ACL(访问控制列表)来定义用户对文件系统的访问权限。 在实现过程中,开发者可能会使用一些常见的PHP库和工具,如PHPMailer用于发送文件下载链接,或者使用...

    cpp-Jabberd2是一个XMPP的服务器端软件

    这种模块化架构允许服务器根据需要加载或卸载功能,提高了灵活性和可定制性。 2. **高性能和稳定性**:Jabberd2 使用事件驱动模型,配合高效的多线程处理,确保了在高并发场景下的性能表现。同时,其稳定的运行能力...

    IPv6_DS-Lite服务器搭建过程.doc

    IPv6 DS-Lite (Dual-Stack Lite) 是一...在实际部署中,DS-Lite服务器需要与其他网络设备和服务配合,例如DNS64,以确保IPv6客户端能够正确解析IPv4域名。此外,DS-Lite的实施还需要考虑性能、安全性和服务质量等因素。

    zookeeper客户端与服务器管理包

    4. 软件包结构:`apache-curator-2.5.0-source-release`中的源码分为多个模块,如curator-client、curator-framework、curator-recipes等,便于开发者根据需求选择引入相应部分。 二、Node-ZK-Browser:Zookeeper的...

    nginx-gridfs

    同时,可以设置访问控制列表(ACL)来限制特定用户或角色对文件的访问权限。 **应用场景**: Nginx-GridFS适用于需要高效分发大量静态内容的场景,例如图片库、视频流媒体服务、文档共享平台等。此外,由于其直接与...

    partysip SIP代理服务器

    总的来说,Partysip SIP代理服务器为VoIP网络提供了一个强大的基础设施,不仅适用于个人研究,也可用于企业级部署,满足不同规模的通信需求。通过不断的学习和实践,你可以充分利用其功能,实现个性化的VoIP服务。

    Linux配置FTP服务器。

    通过对Linux环境下FTP服务器的配置和管理的学习,学员将能够熟练掌握如何在Linux系统中部署和维护FTP服务。这不仅包括基础的安装和配置步骤,还包括更高级的功能,如访问控制、用户验证和安全策略的实施。这些技能...

Global site tag (gtag.js) - Google Analytics