nginx_form.json 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715
  1. {
  2. "server": [
  3. {
  4. "key": "server_name",
  5. "title": "域名",
  6. "type": "string",
  7. "ruleType": "",
  8. "pattern": "^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$",
  9. "placeholder": "请填写域名",
  10. "description": "eg. demo.domain.cn",
  11. "width": 300
  12. },
  13. {
  14. "key": "listen",
  15. "type": "int",
  16. "title": "监听",
  17. "min": 0,
  18. "max": 65535,
  19. "width": 300
  20. },
  21. {
  22. "key": "enable",
  23. "title": "启用",
  24. "type": "switch",
  25. "description": "是否启用,如果不启用,将不会渲染该配置"
  26. },
  27. {
  28. "key": "ssl",
  29. "title": "https",
  30. "type": "switch",
  31. "cascade": {
  32. "true": [
  33. {
  34. "key": "certName",
  35. "type": "certs",
  36. "placeholder": "选择SSL证书",
  37. "title": "SSL证书",
  38. "description": "选择SSL证书,如果没有,请填到“SSL证书”管理界面添加证书"
  39. }
  40. ]
  41. }
  42. },
  43. {
  44. "key": "http2",
  45. "title": "http2",
  46. "type": "switch",
  47. "cascade": {
  48. "true": [
  49. {
  50. "key": "http2_max_concurrent_streams",
  51. "value": 1024,
  52. "title": "最大并发流",
  53. "type": "int",
  54. "placeholder": "http2_max_concurrent_streams",
  55. "description": "http2_max_concurrent_streams",
  56. "width": 300
  57. }
  58. ]
  59. }
  60. },
  61. {
  62. "key": "access_log",
  63. "title": "访问日志",
  64. "type": "access_log",
  65. "required": false
  66. },
  67. {
  68. "key": "proxy_settings",
  69. "title": "更多代理设置",
  70. "type": "proxy_settings",
  71. "required": false,
  72. "description": "更多代理设置"
  73. },
  74. {
  75. "key": "fastcgi",
  76. "title": "fastcgi",
  77. "type": "fastcgi",
  78. "required": false,
  79. "description": "ngx_http_fastcgi_module,allows passing requests to a FastCGI server."
  80. },
  81. {
  82. "type": "locations",
  83. "title": "代理/站点",
  84. "key": "locations",
  85. "required": false,
  86. "description": "静态资源或者反向代理,路由规则"
  87. },
  88. {
  89. "type": "gzip",
  90. "title": "压缩配置",
  91. "key": "gzip",
  92. "required": false,
  93. "description": "gzip"
  94. },
  95. {
  96. "title": "Access",
  97. "key": "access",
  98. "type": "access",
  99. "required": false,
  100. "description": "deny or allow,白名单或者黑名单访问限制"
  101. },
  102. {
  103. "type": "auth",
  104. "title": "鉴权",
  105. "key": "auth_request",
  106. "required": false,
  107. "description": "ngx_http_auth_request_module:实现了基于一子请求的结果的客户端的授权。如果子请求返回2xx响应码,则允许访问。如果它返回401或403,则访问被拒绝并显示相应的错误代码。子请求返回的任何其他响应代码都被认为是错误的"
  108. },
  109. {
  110. "key": "rewrite",
  111. "type": "object",
  112. "title": "rewrite",
  113. "required": false,
  114. "hideHeader": true,
  115. "description": "格式:rewrite < regex > < replacement > [flag]",
  116. "items": [
  117. {
  118. "key": "regex",
  119. "title": "正则表达式",
  120. "type": "string",
  121. "width": 180,
  122. "placeholder": "<regex> 正则匹配",
  123. "required": false
  124. },
  125. {
  126. "key": "replacement",
  127. "title": "跳转路径",
  128. "type": "string",
  129. "placeholder": "<replacement> 跳转后的内容",
  130. "width": 300,
  131. "required": false
  132. },
  133. {
  134. "key": "flag",
  135. "title": "flag",
  136. "type": "select",
  137. "option": ["last","break","redirect","permanent"],
  138. "width": 120,
  139. "placeholder": "[flag] 标记",
  140. "description": "last: 相当于Apache的【L】标记,表示完成rewrite;\nbreak:本条规则匹配完成即终止,不在匹配后面的任何规则;\nredirect: 返回302临时重定向,浏览器地址栏会显示跳转后的URL地址,爬虫不会更新url;\npermanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新url;"
  141. }
  142. ]
  143. },
  144. {
  145. "key": "cors_setting",
  146. "title": "跨域配置",
  147. "type": "cors",
  148. "description": "跨域配置,可以通过该配置项解决前端跨域问题",
  149. "required": false
  150. },
  151. {
  152. "key": "tmp_custom_config",
  153. "title": "自定义配置",
  154. "type": "textarea",
  155. "hideHeader": true,
  156. "description": "自定义配置,注意,每行结尾需要加“;”号,将会拼接在最后,不做任何修改,请注意格式",
  157. "required": false,
  158. "trim": false,
  159. "width": 600
  160. },
  161. {
  162. "type": "divider",
  163. "key": "tmp_more_settings",
  164. "collapsible": true,
  165. "value": false,
  166. "title": "更多设置",
  167. "items": [
  168. {
  169. "key": "keepalive_timeout",
  170. "type": "string",
  171. "required": false,
  172. "title": "keepalive_timeout",
  173. "description": "eg. 10s",
  174. "min": 0,
  175. "ruleType": "reg",
  176. "pattern": "(\\d)(s|m|h)$"
  177. },
  178. {
  179. "key": "client_max_body_size",
  180. "type": "string",
  181. "placeholder": "请求体的最大大小",
  182. "title": "最大请求体大小",
  183. "description": "eg. 500m 20m",
  184. "required": false,
  185. "value": "10m"
  186. },
  187. {
  188. "key": "charset",
  189. "title": "编码",
  190. "required": false,
  191. "description": "charset"
  192. },
  193. {
  194. "key": "ssl_session_timeout",
  195. "type": "string",
  196. "placeholder": "ssl_session_timeout",
  197. "title": "ssl_session_timeout",
  198. "description": "eg. 5m 60s",
  199. "required": false
  200. },
  201. {
  202. "key": "ssl_prefer_server_ciphers",
  203. "type": "select",
  204. "placeholder": "ssl_prefer_server_ciphers",
  205. "title": "ssl_prefer_server_ciphers",
  206. "option": ["on","off"],
  207. "value": "on",
  208. "required": false,
  209. "width": 260
  210. },
  211. {
  212. "key": "ssl_ciphers",
  213. "type": "string",
  214. "placeholder": "ssl_ciphers",
  215. "title": "ssl_ciphers",
  216. "description": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4",
  217. "required": false,
  218. "width": 450
  219. },
  220. {
  221. "key": "ssl_protocols",
  222. "type": "select",
  223. "mode": "multiple",
  224. "placeholder": "ssl_protocols",
  225. "title": "SSL协议",
  226. "option": ["TLSv1","TLSv1.1","TLSv1.2","TLSv2","TLSv3"],
  227. "required": false,
  228. "width": 450
  229. }
  230. ]
  231. }
  232. ],
  233. "addNginx": [
  234. {
  235. "type": "string",
  236. "key": "name",
  237. "title": "名称"
  238. },
  239. {
  240. "key": "isLocal",
  241. "type": "switch",
  242. "description": "本地实例,直接在服务器上运行名称,非本地实例,需要配置SSH连接信息,使用SSH执行相关命令",
  243. "value": true,
  244. "title": "本地实例",
  245. "cascade": {
  246. "false": [
  247. {
  248. "type": "string",
  249. "key": "ipAddr",
  250. "title": "IP地址"
  251. },
  252. {
  253. "type": "int",
  254. "key": "port",
  255. "title": "端口"
  256. },
  257. {
  258. "type": "string",
  259. "key": "user",
  260. "title": "用户名"
  261. },
  262. {
  263. "type": "password",
  264. "key": "password",
  265. "title": "密码"
  266. }
  267. ]
  268. }
  269. }
  270. ],
  271. "nginxSettings": [
  272. {
  273. "key": "isServer",
  274. "title": "服务方式运行",
  275. "type": "switch",
  276. "description": "以服务方式运行,则使用service nginx start|stop|reload 等命令,否则使用nginx -s reload|stop 等命令"
  277. },
  278. {
  279. "key": "nginxPath",
  280. "title": "nginx位置",
  281. "type": "string",
  282. "description": "nginx的文件所在的绝对路径,默认为:/usr/sbin/nginx,可使用nginx -V 查看参数--sbin-path;",
  283. "value": "/usr/sbin/nginx"
  284. },
  285. {
  286. "key": "nginxDir",
  287. "title": "nginx配置目录",
  288. "type": "string",
  289. "description": "nginx的配置文件所在的目录,即nginx.conf所在的目录,一般为:/etc/nginx,可使用nginx -V 查看参数 --prefix",
  290. "value": "/etc/nginx"
  291. },
  292. {
  293. "key":"dataDir",
  294. "type": "string",
  295. "title": "数据目录",
  296. "description": "nginx的自定义配置文件所在目录,注意,是nginx的配置文件目录,包括配置文件,证书,备份文件都将保存到该目录下"
  297. },
  298. {
  299. "key": "remark",
  300. "title": "备注信息",
  301. "placeholder": "输入备注",
  302. "type": "textarea",
  303. "required": false,
  304. "trim": false
  305. }
  306. ],
  307. "nginxConf": [
  308. {
  309. "key": "user",
  310. "value": "nginx",
  311. "title": "user",
  312. "placeholder": "nginx user"
  313. },
  314. {
  315. "key": "worker_processes",
  316. "title": "工作进程数量",
  317. "type": "string",
  318. "ruleType": "reg",
  319. "pattern": "^(auto|\\d+)$",
  320. "description": "auto或者指定数量"
  321. },
  322. {
  323. "key": "error_log",
  324. "title": "错误日志路径",
  325. "type": "error_log",
  326. "value": {
  327. "path": "/var/log/nginx/error.log",
  328. "level": "notice"
  329. }
  330. },
  331. {
  332. "key": "pid",
  333. "title": "pid位置",
  334. "type": "string",
  335. "value": "/var/run/nginx.pid",
  336. "description": "eg. /var/run/nginx.pid"
  337. },
  338. {
  339. "key": "temp.events",
  340. "type": "divider",
  341. "title": "events配置",
  342. "description": "nginx events 模块主要是nginx 和用户交互网络连接优化的配置内容",
  343. "items": [
  344. {
  345. "key": "events.accept_mutex",
  346. "title": "accept_mutex",
  347. "type": "switch",
  348. "value": true,
  349. "required": false,
  350. "description": "这个配置主要可以用来解决常说的\"惊群\"问题。大致意思是在某一个时刻,客户端发来一个请求连接,Nginx后台是以多进程的工作模式,也就是说有多个worker进程会被同时唤醒,但是最终只会有一个进程可以获取到连接,如果每次唤醒的进程数目太多,就会影响Nginx的整体性能。如果将上述值设置为on(开启状态),将会对多个Nginx进程接收连接进行序列号,一个个来唤醒接收,就防止了多个进程对连接的争抢"
  351. },
  352. {
  353. "key": "events.worker_connections",
  354. "type": "int",
  355. "layout": "form",
  356. "title": "最大连接数",
  357. "description": "用来配置单个worker进程最大的连接数,nginx 默认连接数是1024",
  358. "min": 0,
  359. "max": 65536,
  360. "value": 1024,
  361. "required": false
  362. },
  363. {
  364. "key": "events.multi_accept",
  365. "title": "multi_accept",
  366. "description": "用来设置是否允许同时接收多个网络连接",
  367. "type": "switch",
  368. "value": false,
  369. "required": false
  370. },
  371. {
  372. "key": "events.use",
  373. "title": "网络驱动",
  374. "description": "用来设置Nginx服务器选择哪种事件驱动来处理网络消息;另外这些值的选择,我们也可以在编译的时候使用:–with-select_module、–without-select_module、 --with-poll_module、–without-poll_module来设置是否需要将对应的事件驱动模块编译到Nginx的内核",
  375. "type": "select",
  376. "option": ["select","poll","epoll","kqueue"],
  377. "required": false
  378. }
  379. ]
  380. },
  381. {
  382. "key": "temp.http",
  383. "title": "http配置",
  384. "type": "divider",
  385. "items": [
  386. {
  387. "key": "http.include",
  388. "type": "string",
  389. "value": "/etc/nginx/mime.types",
  390. "title": "include"
  391. },
  392. {
  393. "key": "http.default_type",
  394. "type": "string",
  395. "value": "application/octet-stream",
  396. "title": "default_type"
  397. },
  398. {
  399. "key": "http.log_format",
  400. "title": "日志格式",
  401. "type": "array",
  402. "items": [
  403. {
  404. "type": "textarea",
  405. "key": "name",
  406. "value": "main",
  407. "title": "格式名称",
  408. "rows": 4,
  409. "placeholder": "日志格式名称,eg. main compression",
  410. "width": 200,
  411. "description": "日志格式名称,eg. main compression log1 log2",
  412. "trim": false,
  413. "required": true
  414. },
  415. {
  416. "type": "textarea",
  417. "key": "content",
  418. "value": "",
  419. "title": "日志格式",
  420. "required": true,
  421. "rows": 4,
  422. "width": 400,
  423. "trim": false,
  424. "placeholder": "'$remote_addr - $remote_user [$time_local] \"$request\" '\n '$status $body_bytes_sent \"$http_referer\" '\n '\"$http_user_agent\" \"$http_x_forwarded_for\"'",
  425. "description": "参数 说明 示例\n$remote_addr 客户端地址 211.28.65.253\n$remote_user 客户端用户名称 --\n$time_local 访问时间和时区 18/Jul/2012:17:00:01 +0800\n$request 请求的URI和HTTP协议 \"GET /article-10000.html HTTP/1.1\"\n$http_host 请求地址,即浏览器中你输入的地址(IP或域名) www.wang.com 192.168.100.100\n$status HTTP请求状态 200\n$upstream_status upstream状态 200\n$body_bytes_sent 发送给客户端文件内容大小 1547\n$http_referer url跳转来源 https://www.baidu.com/\n$http_user_agent 用户终端浏览器等信息 \"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;\n$ssl_protocol SSL协议版本 TLSv1\n$ssl_cipher 交换数据中的算法 RC4-SHA\n$upstream_addr 后台upstream的地址,即真正提供服务的主机地址 10.10.10.100:80\n$request_time 整个请求的总时间 0.205\n$upstream_response_time 请求过程中,upstream响应时间 0.002\neg.'$remote_addr - $remote_user [$time_local] \"$request\" '\n '$status $body_bytes_sent \"$http_referer\" '\n '\"$http_user_agent\" \"$http_x_forwarded_for\"'"
  426. }
  427. ]
  428. },
  429. {
  430. "key": "http.access_log",
  431. "title": "访问日志",
  432. "type": "access_log",
  433. "required": false
  434. },
  435. {
  436. "key": "http.error_log",
  437. "title": "错误日志",
  438. "type": "error_log",
  439. "required": false
  440. },
  441. {
  442. "key": "http.sendfile",
  443. "type": "select",
  444. "required": false,
  445. "option": ["on","off"],
  446. "title": "sendfile"
  447. },
  448. {
  449. "key": "http.tcp_nopush",
  450. "type": "select",
  451. "required": false,
  452. "option": ["on","off"],
  453. "title": "tcp_nopush"
  454. },
  455. {
  456. "type": "gzip",
  457. "title": "压缩配置",
  458. "key": "http.gzip",
  459. "required": false,
  460. "description": "gzip"
  461. },
  462. {
  463. "key": "http.keepalive_timeout",
  464. "type": "int",
  465. "required": false,
  466. "title": "keepalive_timeout",
  467. "description": "单位为秒(s), 0表示不限制",
  468. "min": 0
  469. },
  470. {
  471. "title": "Access",
  472. "key": "http.access",
  473. "type": "access",
  474. "required": false,
  475. "description": "deny or allow,白名单或者黑名单访问限制"
  476. },
  477. {
  478. "key": "http.proxy_settings",
  479. "title": "代理设置",
  480. "type": "proxy_settings",
  481. "required": false
  482. },
  483. {
  484. "key": "http.fastcgi",
  485. "title": "fastcgi",
  486. "type": "fastcgi",
  487. "required": false,
  488. "description": "ngx_http_fastcgi_module,allows passing requests to a FastCGI server."
  489. },
  490. {
  491. "key": "http.more",
  492. "type": "textarea",
  493. "required": false,
  494. "title": "更多配置",
  495. "description": "自定义配置,每行需要有分隔符号",
  496. "trim": false
  497. }
  498. ]
  499. },
  500. {
  501. "key": "stream",
  502. "type": "divider",
  503. "collapsible": true,
  504. "title": "TCP/UDP配置",
  505. "description": "stream配置,需要注意安装的nginx版本是否支持;默认情况下,没有构建此模块。 -必须使用-with stream配置参数启用",
  506. "items": [
  507. {
  508. "key": "stream.log_format",
  509. "title": "日志格式",
  510. "type": "array",
  511. "items": [
  512. {
  513. "type": "textarea",
  514. "key": "name",
  515. "value": "tcp_format",
  516. "title": "格式名称",
  517. "rows": 4,
  518. "placeholder": "日志格式名称,eg. tcp_format",
  519. "width": 200,
  520. "description": "日志格式名称,eg. tcp_format",
  521. "trim": false
  522. },
  523. {
  524. "type": "textarea",
  525. "key": "content",
  526. "value": "",
  527. "title": "日志格式",
  528. "rows": 4,
  529. "width": 400,
  530. "trim": false,
  531. "description": "eg. '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time'",
  532. "placeholder": "'$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time'"
  533. }
  534. ]
  535. },
  536. {
  537. "key": "stream.access_log",
  538. "title": "访问日志",
  539. "type": "access_log",
  540. "value": {
  541. "level": "tcp_format",
  542. "path": "/var/log/nginx/access_stream.log"
  543. },
  544. "stream": true
  545. },
  546. {
  547. "key": "stream.error_log",
  548. "title": "错误日志",
  549. "type": "error_log",
  550. "stream": true,
  551. "value": {
  552. "path": "/var/log/nginx/error_stream.log"
  553. }
  554. }
  555. ]
  556. }
  557. ],
  558. "upstream": [
  559. {
  560. "title": "名称",
  561. "key": "name",
  562. "width": 100,
  563. "description": "名称相同则为同一组负载均衡,只支持英文字母",
  564. "type": "string"
  565. },
  566. {
  567. "title": "负载方式",
  568. "key": "type",
  569. "type": "select",
  570. "option": ["ip_hash","weight"],
  571. "width": 100,
  572. "required": false,
  573. "description": "ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。如果后端服务器down掉,要手工down掉;weight:指定轮询几率,weight和访问比率成正比,如果后端服务器down掉,能自动剔除。"
  574. },
  575. {
  576. "title": "是否启用",
  577. "key": "enable",
  578. "type": "switch",
  579. "value": true
  580. },
  581. {
  582. "title": "服务配置",
  583. "type": "array",
  584. "key": "servers",
  585. "items": [
  586. {
  587. "title": "主机",
  588. "type": "string",
  589. "key": "host",
  590. "description": "后端服务IP",
  591. "width": 150
  592. },
  593. {
  594. "title": "端口",
  595. "type": "int",
  596. "key": "port",
  597. "description": "后端服务端口",
  598. "width": 100
  599. },
  600. {
  601. "title": "权重",
  602. "type": "int",
  603. "key": "weight",
  604. "description": "权重,ip_hash模式下不生效,数字越大,越高,为0将剔除",
  605. "width": 80,
  606. "min": 0,
  607. "value": 100
  608. },
  609. {
  610. "title": "状态/角色",
  611. "type": "select",
  612. "key": "status",
  613. "option": ["normal","down","backup"],
  614. "description": "weight,backup 不能和 ip_hash 关键字一起使用;down:表示当前的server暂时不参与负载",
  615. "width": 100,
  616. "required": false
  617. },
  618. {
  619. "title": "max_fails",
  620. "type": "int",
  621. "key": "max_fails",
  622. "required": false,
  623. "description": "最大失败次数,也就是最多进行 3 次尝试,默认为1",
  624. "width": 100
  625. },
  626. {
  627. "title": "超时时间",
  628. "type": "int",
  629. "key": "fail_timeout",
  630. "required": false,
  631. "description": "超时时间,单位秒,默认值是10s",
  632. "width": 100
  633. }
  634. ]
  635. }
  636. ],
  637. "stream": [
  638. {
  639. "key": "listen",
  640. "type": "int",
  641. "value": 3306,
  642. "title": "端口",
  643. "width": 100
  644. },
  645. {
  646. "key": "proxy_pass",
  647. "type": "stream_proxy_pass",
  648. "title": "后端服务",
  649. "description": "IP:PORT 或者upstream的名称",
  650. "width": 200
  651. },
  652. {
  653. "key": "enable",
  654. "type": "switch",
  655. "title": "启用",
  656. "description": "如果不启用,不会渲染该组配置信息",
  657. "required": false
  658. },
  659. {
  660. "key": "proxy_connect_timeout",
  661. "type": "int",
  662. "value": 10,
  663. "title": "connect_timeout",
  664. "placeholder": "与被代理服务器建立连接的超时时间,单位为s",
  665. "required": false
  666. },
  667. {
  668. "key": "proxy_timeout",
  669. "type": "int",
  670. "value": 10,
  671. "title": "超时时间",
  672. "placeholder": "获取被代理服务器的响应最大超时时间,单位为s",
  673. "required": false
  674. },
  675. {
  676. "key": "proxy_next_upstream",
  677. "type": "switch",
  678. "value": true,
  679. "title": "next_upstream",
  680. "description": "当被代理的服务器返回错误或超时时,将未返回响应的客户端连接请求传递给upstream中的下一个服务器",
  681. "required": false
  682. },
  683. {
  684. "key": "proxy_next_upstream_tries",
  685. "type": "int",
  686. "value": 3,
  687. "title": "最大错误次数",
  688. "description": "转发尝试请求最多3次",
  689. "required": false
  690. },
  691. {
  692. "key": "proxy_next_upstream_timeout",
  693. "type": "int",
  694. "value": 10,
  695. "title": "总尝试超时时间",
  696. "description": "总尝试超时时间,单位为s",
  697. "required": false
  698. },
  699. {
  700. "key": "proxy_socket_keepalive",
  701. "type": "switch",
  702. "value": true,
  703. "title": "心跳",
  704. "description": "开启SO_KEEPALIVE选项进行心跳检测",
  705. "required": false
  706. },
  707. {
  708. "key": "remark",
  709. "type": "string",
  710. "placeholder": "备注信息",
  711. "required": false,
  712. "title": "备注"
  713. }
  714. ]
  715. }