当前位置: 首页 > 工具软件 > karrigell > 使用案例 >

karrigell配置说明

尉迟禄
2023-12-01

配置

配置被定义为三种级别:

1.命令行:当服务器被使用的时候,服务器相关的配置脚本的位置的目录可以被指定

python Karrigell.py [ServerConfigDirectory]

默认情况,这个目录就在Karrigell.py所在的目录

2.服务器配置脚本:定义框架使用的目录,服务器级别相关的选项(会话存储,最大线程数等).对于web服务器,这些数据都存储在server_config.py中

3.主机配置脚本:定义在每个主机的data目录下的conf.py中;对于本地主机,它在data/www中

每一个主机都可以通过指定的配置文件来配置。在主机名和它的配置文件之间的映射定义在文本文件hosts中,在服务器配置目录中

你可以编辑主机配置脚本通过文本编辑器或者在线,通过管理员菜单,访问主页。

 

服务器配置

脚本定义了下面的值

karrigell_dir

    这个目录是karrigell核心安装的目录:core和package存在的地方

host_conf_dir

    这个目录是主机相关的配置文件hosts所在的地方

port

    服务器运行的端口号

persistent_sessions

    大多数情况下这个选项最好为True,意味着会话数据存储在硬盘上:存在内存中不是很安全,在一个多线程的环境中,或者是内奸多线程服务器,或者是在apache后面。

    这限制了会话数据可以被pickle模块序列化

    当你需要存储unpicklable的python对象作为会话数据,你可以设置persistent_sessions为False。

    正如上面提到的,这样会使服务器仅工作于单进程,单线程的,比如Karrigell_monoprocess.py或者Karrigell_async.py上。

cache

    布尔类型的变量,指明是否使用HTTP缓冲。默认为True.

ipv6

    布尔类型的变量,是否用IPv6代替IPv4。默认为False.

max_threads

    可用的最大线程数

process_num

    多进程服务器可以用的进程数

silent

    布尔类型的变量,说明服务器是否会写日志信息到sys.stderr,对于每一个请求

module

    对请求过程的名字的目录映射到一个模块列表中。当指定的步骤达到时,每个模块中的main函数提供给请求句柄的对象。

 

主机配置

root_dir

这个变量是根目录的全名,这个目录是你想要提供服务文件的地方。默认是www作为服务器目录

data_dir

主机相关的数据所在地:用户数据库,翻译文件,会话数据

cache_dir

脚本缓冲所在地。缓冲避免了每次运行都去解析脚本;当脚本源码改动的时候它们才会更新,如果设置为None,缓冲功能就除能了。

cgi_dir

CGI脚本存放的地方

allow_directory_listing

当url匹配的目录中没有index文件,则显示目录列表。如果值为['admin','edit']所有的用户都可以看到列表,如果None在列表中,仅有'admin'或者'visit'角色的用户可以看到列表;其他的用户将会得到错误信息。默认为[None]。    

hide_extensiions

文件扩展名列表将会隐藏(返回403错误)

ignore

匹配url路径的正则表达式列表;如果匹配成功服务器将返回错误403

这可以用来禁止访问一系列目录。比如如果你有版本控制,并建立了目录cvs,你可以禁止访问这个目录

ignore = [".*/cvs/.*"]

logging_file

日志文件的路径。如果没有设置,则不执行日志功能

logging_rotate

如果logging_file设置了,这个变量说明日志文件将会被改变。如果设置为None,将会使用同样的日志文件。

如果设置为"monthly","daily",“hourly”,日志文件将会按时间改变。日志文件的名字后面会添加month/day/hour

output_encoding

字符串=编码,指定发送数据回客户端的编码

alias

映射到文件系统目录的目录别名。

alias = {"scripts" : "c://My Documents//Karrigell scripts"}

那么http://localhost/scripts/index.html将会使用c:/My Documents/Karrigell scripts/index.html

debug

说明你希望详细的信息,包括python traceback,打印脚本执行中可能的错误或异常。默认为True。如果为False,仅会打印类似 "Server was unable to process the request"的句子,没有其他细节。

gzip

如果为True,用户代理支持gzip编码(大部分浏览器都支持),服务器压缩数据然后发送给客户端。这将减少网络负载,但是会让服务器变慢。

global_modules

必须被导入到每一个脚本中的模块列表

global_modules = ["/usr/scritps/myScript.py"]

模块名myScript将会在命名空间中对所有脚本可用

max_sessions

可以被存储的最大会话数。默认为500

 类似资料: