三、Web服务配置文件

3. HTTP服务配置文件

Web 服务配置文件采用 JSON 的格式进行服务配置。


3.1 服务配置文件

配置文件路径: /conf/web.json

  • 配置服务启动参数。
  • 配置过滤器的定义和工作顺序,请求正向顺序执行,响应倒向顺序执行。
  • 注册路由处理器,会被自动初始化到 WebServer 中。
具体说明请看一下文件的注释信息。
  1. {
  2. "Host" : "0.0.0.0", // 服务 IP 地址,默认0.0.0.0
  3. "Port" : 28080, // 服务端口,默认8080
  4. "Timeout" : 30, // 连接超时时间(s),默认30秒
  5. "IndexFiles" : "index.htm,index.html...", //定义首页索引文件的名称
  6. "ContextPath" : "WEBAPP", // 上下文路径,绝对路径 "/"起始,相对路径 非"/" 起始,默认是WEBAPP
  7. "MatchRouteIgnoreCase" : true, // 匹配路由不区分大小写,默认是 false
  8. "CharacterSet" : "GB2312", // 默认字符集,默认 UTF-8
  9. "SessionContainer" : "java.util.Hashtable", // Session 容器类,默认java.util.Hashtable
  10. "SessionTimeout" : 30, // Session 会话超时时间(m),默认30分钟
  11. "KeepAliveTimeout" : 60, // KeepAlive 超时时间(s),默认60秒,如果值小于0则不启用 KeepAlive 设置 (该参数同样会被应用到 WebSocket 的连接保持上)
  12. "Gzip" : false, // 是否启用Gzip压缩,默认 true
  13. "AccessLog" : true, // 是否记录access.log,默认 true
  14. "Monitor" : true, // 是否提供监控服务,默认 false
  15. //HTTPS证书配置
  16. "Https": {
  17. "CertificateFile" : "/src/test/java/org/voovan/test/network/ssl/ssl_ks", // HTTPS 证书
  18. "CertificatePassword" : "passStr", // HTTPS 证书密码
  19. "KeyPassword" : "123123", // HTTPS 证书Key 密码
  20. },
  21. // 过滤器配置节点 请求 先执行filter1, 后执行filter2,响应则相反
  22. "Filters": [
  23. {
  24. "Name" : "filter1",
  25. "ClassName" : "org.voovan.test.http.HttpFilterTest",
  26. "Encoding" : "UTF-8",
  27. "Action" : "pass" },
  28. {
  29. "Name" : "filter2",
  30. "ClassName" : "org.voovan.test.http.HttpFilterTest",
  31. "Encoding" : "UTF-8",
  32. "Action" : "pass" },
  33. {
  34. "Name" : "filter3",
  35. "ClassName" : "org.voovan.test.http.HttpFilterTest",
  36. "Encoding" : "UTF-8",
  37. "Action" : "pass" }
  38. ],
  39. //路由管理器配置节点
  40. "Routers": [
  41. {
  42. "name": "配置路由测试", //路由名称
  43. "Route": "/configRouter", //Http请求路径
  44. "Method": "GET", //Http请求方法
  45. "ClassName": "org.voovan.test.http.router.HttpTestRouter" //Http 路由处理器
  46. }
  47. ],
  48. //模块配置节点
  49. "Modules": [{
  50. "Name": "性能监控模块", //模块名称
  51. "Path": "/VoovanMonitor", //模块路径
  52. "ClassName": "org.voovan.http.monitor.Monitor" //模块处理器
  53. }]
  54. }

也可以通过自己构造org.voovan.http.server.context.WebServerConfig对象来通过带参数的构造方法初始化HttpServer,带参数的构造方法如下:

  1. public WebServer(WebServerConfig config) throws IOException

3.2 MIME类型配置文件

非必要文件,系统会默认加载一个内部的 mime 定义文件,如果用户自定义了 mime.json 会自动覆盖系统的mime定义配置文件路径: /conf/mime.json


配置方式: "文件类型":"MIME 类型"

  1. {
  2. "123": "application/vnd.lotus-1-2-3",
  3. "3dml": "text/vnd.in3d.3dml",
  4. "3ds": "image/x-3ds",
  5. "3g2": "video/3gpp2",
  6. "3gp": "video/3gpp",
  7. ......
  8. }

3.3.异常类型配置文件

配置文件路径: /conf/error.json

  1. {
  2. //静态文件访问未找到目标文件
  3. "org.hocate.http.server.exception.ResourceNotFound":{ //异常类
  4. "StatusCode" :404, //返回的错误码,默认值500
  5. "Page" :"Error.html", //异常处理页面,默认值Error.html,默认保存目录/conf/error-page
  6. "Description" :"The request file is not found." //错误描述信息,默认值Java栈的信息
  7. }
  8. ......
  9. }