瀏覽代碼

add a deploy templete file

stanley-king 1 年之前
父節點
當前提交
d2beae7f95
共有 86 個文件被更改,包括 1191 次插入3747 次删除
  1. 1 0
      .gitignore
  2. 2 2
      docker/compose/homecuda/admin/docker-compose.yml
  3. 0 16
      docker/compose/homecuda/conf/crontab/master_root
  4. 0 17
      docker/compose/homecuda/conf/crontab/slave_root
  5. 3 12
      docker/compose/homecuda/conf/php/spwan-start
  6. 0 2
      docker/compose/homecuda/container.env
  7. 0 0
      docker/compose/homecuda/docker-compose.networks.yml
  8. 2 2
      docker/compose/homecuda/macc/docker-compose.yml
  9. 45 0
      docker/compose/homecuda/master/docker-compose.yml
  10. 0 0
      docker/compose/homecuda/netcreate
  11. 2 2
      docker/compose/homecuda/racc/docker-compose.yml
  12. 58 0
      docker/compose/homecuda/slave/docker-compose.yml
  13. 1 1
      docker/compose/homecuda/storage/docker-compose.yml
  14. 1 1
      docker/compose/homecuda/vendor/docker-compose.yml
  15. 3 3
      docker/compose/homecuda/worker/docker-compose.yml
  16. 9 0
      docker/compose/mh/ReadMe.MD
  17. 24 0
      docker/compose/mh/compose.env
  18. 1 0
      docker/compose/mh/conf/crontab/master_root
  19. 1 18
      docker/compose/mh/conf/crontab/slave_root
  20. 14 21
      docker/compose/mh/conf/nginx/nginx_admin.conf
  21. 67 0
      docker/compose/mh/conf/nginx/macc.conf
  22. 68 0
      docker/compose/mh/conf/nginx/racc.conf
  23. 0 12
      docker/compose/mh/conf/php/mch-spwan-start
  24. 0 11
      docker/compose/mh/conf/php/mobile-spwan-start
  25. 1 1
      docker/compose/mh/conf/php/php-swoole.ini
  26. 1 1
      docker/compose/mh/conf/php/php.ini
  27. 8 0
      docker/compose/mh/conf/php/spwan-start
  28. 10 0
      docker/compose/mh/cpenv
  29. 0 9
      docker/compose/mh/deploy.sh
  30. 3 0
      docker/compose/mh/docker-compose.networks.yml
  31. 0 37
      docker/compose/mh/mh-acc/docker-compose.yml
  32. 27 32
      docker/compose/mh/mh-admin/docker-compose.yml
  33. 11 23
      docker/compose/mh/mh-cli/docker-compose.yml
  34. 35 0
      docker/compose/mh/mh-macc/docker-compose.yml
  35. 0 52
      docker/compose/mh/mh-master-crond/docker-compose.yml
  36. 1 1
      docker/compose/homecuda/master-crond/docker-compose.yml
  37. 35 0
      docker/compose/mh/mh-racc/docker-compose.yml
  38. 0 150
      docker/compose/mh/mh-slave-crond/docker-compose.yml
  39. 1 1
      docker/compose/homecuda/slave-crond/docker-compose.yml
  40. 8 5
      docker/compose/mh/mh-storage/docker-compose.yml
  41. 26 34
      docker/compose/mh/mh-worker/docker-compose.yml
  42. 0 44
      docker/compose/stanmac/acc/docker-compose.yml
  43. 0 30
      docker/compose/stanmac/admin/docker-compose.yml
  44. 0 32
      docker/compose/stanmac/cli/docker-compose.yml
  45. 0 15
      docker/compose/stanmac/conf/crontab/root
  46. 0 13
      docker/compose/stanmac/conf/php/docker-search-start
  47. 0 12
      docker/compose/stanmac/conf/php/mch-spwan-start
  48. 0 11
      docker/compose/stanmac/conf/php/mobile-spwan-start
  49. 0 1953
      docker/compose/stanmac/conf/php/php-swoole-debug.ini
  50. 0 11
      docker/compose/stanmac/conf/php/racc-spwan-start
  51. 0 944
      docker/compose/stanmac/conf/redis/6380.conf
  52. 0 47
      docker/compose/stanmac/master-cron/docker-compose.yml
  53. 0 2
      docker/compose/stanmac/rmcontainer.sh
  54. 0 64
      docker/compose/stanmac/stat/docker-compose.yml
  55. 0 13
      docker/compose/stanmac/storage/docker-compose.yml
  56. 0 13
      docker/compose/stanmac/vendor/docker-compose.yml
  57. 0 24
      docker/compose/stanmac/worker/docker-compose.yml
  58. 9 0
      docker/compose/template/ReadMe.MD
  59. 51 0
      docker/compose/template/admin/docker-compose.yml
  60. 23 0
      docker/compose/template/cli/docker-compose.yml
  61. 24 0
      docker/compose/template/compose.env
  62. 1 0
      docker/compose/template/conf/crontab/master_root
  63. 17 0
      docker/compose/template/conf/crontab/root
  64. 5 0
      docker/compose/template/conf/crontab/slave_root
  65. 0 0
      docker/compose/template/conf/etc/localtime
  66. 124 0
      docker/compose/template/conf/nginx/admin.conf
  67. 67 0
      docker/compose/template/conf/nginx/macc.conf
  68. 44 27
      docker/compose/stanmac/conf/nginx/nginx.conf
  69. 68 0
      docker/compose/template/conf/nginx/racc.conf
  70. 4 1
      docker/compose/stanmac/conf/php-fpm/php-fpm.conf
  71. 6 13
      docker/compose/stanmac/conf/php/php.ini
  72. 3 12
      docker/compose/stanmac/conf/php/php-debug.ini
  73. 8 0
      docker/compose/template/conf/php/spwan-start
  74. 3 0
      docker/compose/template/conf/php/vender-init
  75. 0 0
      docker/compose/template/conf/redis/6379.conf
  76. 11 0
      docker/compose/template/conf/redis/cluster.conf
  77. 10 0
      docker/compose/template/cpenv
  78. 3 0
      docker/compose/template/docker-compose.networks.yml
  79. 35 0
      docker/compose/template/macc/docker-compose.yml
  80. 45 0
      docker/compose/template/master/docker-compose.yml
  81. 35 0
      docker/compose/template/racc/docker-compose.yml
  82. 58 0
      docker/compose/template/slave/docker-compose.yml
  83. 18 0
      docker/compose/template/storage/docker-compose.yml
  84. 44 0
      docker/compose/template/worker/docker-compose.yml
  85. 3 0
      docker/compose/template/worker/restart_cordsrv.sh
  86. 3 0
      docker/compose/template/worker/stop_all.sh

+ 1 - 0
.gitignore

@@ -103,3 +103,4 @@ phpunit.xml
 */.DS_Store
 data/cards
 config.ini.php
+.env

+ 2 - 2
docker/compose/homecuda/admin/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.9"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   nginx:
@@ -32,7 +32,7 @@ services:
       - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
       - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
     container_name: '${CONTAINER_PREFIX}-admch'
-    command: [ spwan-start,"/mchsrv/mchsrv_run.php","mchsrv.log" ]
+    command: [ spwan-start,"/mchsrv/mchsrv_run.php","8" ]
     networks:
       - ${DOCKER_NET_NAME}
 

+ 0 - 16
docker/compose/homecuda/conf/crontab/master_root

@@ -1,17 +1 @@
-# do daily/weekly/monthly maintenance
-# min	hour	day	month	weekday	command
-#*/15	*	*	*	*	run-parts /etc/periodic/15min
-#0	*	*	*	*	run-parts /etc/periodic/hourly
-#0	2	*	*	*	run-parts /etc/periodic/daily
-#0	3	*	*	6	run-parts /etc/periodic/weekly
-#0	5	1	*	*	run-parts /etc/periodic/monthly
-#0   3   *   *   *   php /var/www/html/crontab/index.php date index
-#0   9   *   *   *   php /var/www/html/crontab/index.php date nine_clock
-#0   10  *   *   *   php /var/www/html/crontab/index.php date ten_clock
 *    *   *   *   *   php /var/www/html/crontab/index.php minutes index
-#0   10-20/1 *   *   *   php /var/www/html/crontab/index.php hour index
-#0   3   1   */1 *   php /var/www/html/crontab/index.php month index
-*    *   *   *   *   echo "test" >> /var/test.log
-
-#0   1   *   *   *   php /var/www/html/crontab/index.php date _order_stats
-

+ 0 - 17
docker/compose/homecuda/conf/crontab/slave_root

@@ -1,22 +1,5 @@
-# do daily/weekly/monthly maintenance
-# min	hour	day	month	weekday	command
-#*/15	*	*	*	*	run-parts /etc/periodic/15min
-#0	*	*	*	*	run-parts /etc/periodic/hourly
-#0	2	*	*	*	run-parts /etc/periodic/daily
-#0	3	*	*	6	run-parts /etc/periodic/weekly
-#0	5	1	*	*	run-parts /etc/periodic/monthly
-#0   3   *   *   *   php /var/www/html/crontab/index.php date index
-#0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
-#0   9   *   *   *   php /var/www/html/crontab/index.php date nine_clock
-#0   10  *   *   *   php /var/www/html/crontab/index.php date ten_clock
-#0   10-20/1 *   *   *   php /var/www/html/crontab/index.php hour index
-#0   3   1   */1 *   php /var/www/html/crontab/index.php month index
-#0   1   *   *   *   php /var/www/html/crontab/index.php date _order_stats
-#0   0    *   *   *   php /var/www/html/crontab/index.php date merchant_available
 */1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance
 0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
-#0   8   *   *   *   sh /mnt/xyzshop/util/purge.sh #挪到了系统的crontab 执行了
-
 0   23   *   *   *   php /var/www/html/crontab/index.php date merchant_nightime
 0   7    *   *   *   php /var/www/html/crontab/index.php date merchant_daytime
 0   0    *   *   *   php /var/www/html/crontab/index.php date merchant_available

+ 3 - 12
docker/compose/homecuda/conf/php/spwan-start

@@ -2,16 +2,7 @@
 set -e
 
 cmd="php /var/www/html$1"
-time=$(date "+%Y%m%d")
-file="/var/www/html/data/log/${time}-$2"
+spawn-fcgi -a 0.0.0.0 -p 9000 -F $2 -f "$cmd"
 
-spawn-fcgi -a 0.0.0.0 -p 9000 -F 1 -f "$cmd"
-
-#trap 'echo "Container is exiting"; exit' EXIT
-#tail -f /dev/null
-
-if [ ! -f $file ]; then
-    touch $file
-fi
-
-tail -f $file
+trap 'echo "Container is exiting"; exit' EXIT
+tail -f /dev/null

+ 0 - 2
docker/compose/homecuda/container.env

@@ -1,2 +0,0 @@
-
-#mobile 模块接入层配置

docker/compose/docker-compose.networks.yml → docker/compose/homecuda/docker-compose.networks.yml


+ 2 - 2
docker/compose/homecuda/macc/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.9"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   nginx:
@@ -32,6 +32,6 @@ services:
       - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
       - ../conf/php/spwan-start:/usr/local/bin/spwan-start
     container_name: "${CONTAINER_PREFIX}-macc"
-    command: [ spwan-start,"/mobile/mobile_run.php","mobile.log" ]
+    command: [ spwan-start,"/mobile/mobile_run.php","16" ]
     networks:
       - ${DOCKER_NET_NAME}

+ 45 - 0
docker/compose/homecuda/master/docker-compose.yml

@@ -0,0 +1,45 @@
+version: "3.7"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  crontabsrv:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/crontab/master_root:/var/spool/cron/crontabs/root
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-crontab"
+    command: [crond,"-f"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  cronsec:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-cronsec"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','second_queue']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  accedit:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-accedit"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','account_edit']
+    networks:
+      - ${DOCKER_NET_NAME}

docker/compose/netcreate → docker/compose/homecuda/netcreate


+ 2 - 2
docker/compose/homecuda/racc/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.9"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   nginx:
@@ -30,6 +30,6 @@ services:
       - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
       - ../conf/php/spwan-start:/usr/local/bin/spwan-start
     container_name: "${CONTAINER_PREFIX}-racc"
-    command: [ spwan-start,"/racc/racc_run.php","racc.log" ]
+    command: [ spwan-start,"/racc/racc_run.php","16" ]
     networks:
       - ${DOCKER_NET_NAME}

+ 58 - 0
docker/compose/homecuda/slave/docker-compose.yml

@@ -0,0 +1,58 @@
+version: "3.7"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  crontabslave:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-cron"
+    command: [crond,"-f"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  taska:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-taska"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','task']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  taskb:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-taskb"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','task']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  statutil:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-stat"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','stat']
+    networks:
+      - ${DOCKER_NET_NAME}

+ 1 - 1
docker/compose/homecuda/storage/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.7"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   redisrv:

+ 1 - 1
docker/compose/homecuda/vendor/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.9"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   nginx:

+ 3 - 3
docker/compose/homecuda/worker/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.9"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   cordsrv:
@@ -18,7 +18,7 @@ services:
       - ${DOCKER_NET_NAME}
 
   queuesrv:
-    image: php-zts-debug:7.3.18
+    image: php-zts:7.3.18
     volumes:
       - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
@@ -31,7 +31,7 @@ services:
       - ${DOCKER_NET_NAME}
 
   searcher:
-    image: php-zts-debug:7.3.18
+    image: php-zts:7.3.18
     volumes:
       - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro

+ 9 - 0
docker/compose/mh/ReadMe.MD

@@ -0,0 +1,9 @@
+## macc
+对应模块mobile,老版本的处理充值。
+
+## racc
+对应模块racc,新的独立版本的处理充值。
+
+
+# Port映射表 
+acc-> 8100:80

+ 24 - 0
docker/compose/mh/compose.env

@@ -0,0 +1,24 @@
+#Mobile接入层Nigix端口
+MACCNGINX_PORT=8100
+#ReadMine Nigix 端口
+RMINE_NGINX_PORT=8080
+
+#racc Refill接入层Nginx端口
+RACCNGINX_PORT=80
+#Admin后台Nginx端口
+ADMINGINX_PORT=80
+
+#主站上传文件路径
+SHOP_UPLOAD_PATH=/nfs/mhupload
+#日志路径
+SHOP_LOG_PATH=/mnt/mhlog
+#机构后台页面路径
+MERCHANT_PATH=/nfs/mhmerchant
+#docker 网络名称
+DOCKER_NET_NAME=mh_network
+#docker 容器名称前缀
+CONTAINER_PREFIX=mh
+#商城部署到容器的根目录
+SHOP_ROOT_PATH=/var/www/html
+#系统REDIS端口
+SHOP_REDIS_PORT=6379

+ 1 - 0
docker/compose/mh/conf/crontab/master_root

@@ -0,0 +1 @@
+*    *   *   *   *   php /var/www/html/crontab/index.php minutes index

+ 1 - 18
docker/compose/mh/conf/crontab/slave_root

@@ -1,22 +1,5 @@
-# do daily/weekly/monthly maintenance
-# min	hour	day	month	weekday	command
-#*/15	*	*	*	*	run-parts /etc/periodic/15min
-#0	*	*	*	*	run-parts /etc/periodic/hourly
-#0	2	*	*	*	run-parts /etc/periodic/daily
-#0	3	*	*	6	run-parts /etc/periodic/weekly
-#0	5	1	*	*	run-parts /etc/periodic/monthly
-#0   3   *   *   *   php /var/www/html/crontab/index.php date index
-#0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
-#0   9   *   *   *   php /var/www/html/crontab/index.php date nine_clock
-#0   10  *   *   *   php /var/www/html/crontab/index.php date ten_clock
-#0   10-20/1 *   *   *   php /var/www/html/crontab/index.php hour index
-#0   3   1   */1 *   php /var/www/html/crontab/index.php month index
-#0   1   *   *   *   php /var/www/html/crontab/index.php date _order_stats
-#0   0    *   *   *   php /var/www/html/crontab/index.php date merchant_available
 */1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance
-50   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
-#0   8   *   *   *   sh /mnt/xyzshop/util/purge.sh #挪到了系统的crontab 执行了
-
+0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
 0   23   *   *   *   php /var/www/html/crontab/index.php date merchant_nightime
 0   7    *   *   *   php /var/www/html/crontab/index.php date merchant_daytime
 0   0    *   *   *   php /var/www/html/crontab/index.php date merchant_available

+ 14 - 21
docker/compose/mh/conf/nginx/nginx_admin.conf

@@ -1,7 +1,6 @@
 user nginx;
 worker_processes  16;
-error_log   /var/nginxlog/error.log info;
-
+error_log   /var/www/html/data/log/anginx.log  debug;
 worker_rlimit_nofile 10240;
 
 events {
@@ -32,8 +31,7 @@ http
     {
     	listen       80;
         set  $folder_name /var/www/html;
-        server_name 47.92.239.240; #web.mhigh.cn;
-
+        server_name 192.168.3.104;
         root $folder_name;
         index index.html index.php; 
 
@@ -51,21 +49,25 @@ http
         real_ip_header X-Forwarded-For;
 
         charset utf-8;
-        
-        location /logs {
+
+        location /data/log {
             deny all;
             return 403;
         }
+        location / {
+            index  index.html index.htm index.php;
+        }
 
-        location /data/log {
+        location ~ /mobile {
             deny all;
             return 403;
         }
 
-        location / {
-            index  index.html index.htm index.php;
+        location ~ /racc {
+            deny all;
+            return 403;
         }
-        
+
         location /mshop {
             root $folder_name;
             autoindex on;        
@@ -75,7 +77,7 @@ http
 
         location /plot {
             root $folder_name;
-            proxy_pass         http://172.26.105.126:5000;
+            proxy_pass         http://docker.hostip:5000;
             proxy_redirect     off;
 
             proxy_set_header   Host                 $host;
@@ -91,18 +93,9 @@ http
             try_files $uri $uri/ /merchant/index.html;
         }
 
-        location ~ /mobile/[/\w]+\.php$ {
-            deny all;
-            return 403;
-        }
-
-        location ~ /mobile/[/\w]+\.html$ {
-            try_files $uri $uri/ /mobile/index.html;
-        }
-
         location ~ /mchsrv/[/\w]+\.php$ {
             root           $folder_name;
-            fastcgi_pass   mch:9000;
+            fastcgi_pass   mch:9102;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
             fastcgi_param SIGN $http_sign;

+ 67 - 0
docker/compose/mh/conf/nginx/macc.conf

@@ -0,0 +1,67 @@
+user nginx;
+worker_processes  16;
+error_log   /var/www/html/data/log/mnginx.log info;
+worker_rlimit_nofile 10240;
+
+events {
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+
+    underscores_in_headers on;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
+
+    sendfile            on;
+    keepalive_timeout   300;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server 
+    {
+    	listen       80;
+        set  $folder_name /var/www/html;
+        server_name 192.168.3.104;
+        root $folder_name;
+        index index.html index.php; 
+
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
+
+        charset utf-8;
+
+        location ~ /mobile/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   macc:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_param  SIGN $http_sign;
+            include fastcgi_params;
+        }
+
+        location / {
+            deny all;
+            return 403;
+        }
+    }
+}

+ 68 - 0
docker/compose/mh/conf/nginx/racc.conf

@@ -0,0 +1,68 @@
+user nginx;
+worker_processes  16;
+error_log   /var/www/html/data/log/rnginx.log debug;
+worker_rlimit_nofile 10240;
+
+events {
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+
+    underscores_in_headers on;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
+
+    sendfile            on;
+    keepalive_timeout   300;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server 
+    {
+    	listen       80;
+        set  $folder_name /var/www/html;
+        server_name 192.168.3.104;
+        root $folder_name;
+        index index.html index.php; 
+
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
+
+        charset utf-8;
+
+
+        location ~ /racc/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   racc:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_param  SIGN $http_sign;
+            include fastcgi_params;
+        }
+
+        location / {
+            deny all;
+            return 403;
+        }
+    }
+}

+ 0 - 12
docker/compose/mh/conf/php/mch-spwan-start

@@ -1,12 +0,0 @@
-#!/bin/sh
-set -e
-spawn-fcgi -a 0.0.0.0 -p 9000 -F 8 -f "php /var/www/html/mchsrv/mchsrv_run.php"
-
-
-time=$(date "+%Y%m%d")
-
-if [ ! -f "/var/www/html/data/log/${time}-mchsrv.log" ]; then
-    touch "/var/www/html/data/log/${time}-mchsrv.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-mchsrv.log"

+ 0 - 11
docker/compose/mh/conf/php/mobile-spwan-start

@@ -1,11 +0,0 @@
-#!/bin/sh
-set -e
-spawn-fcgi -a 0.0.0.0 -p 9000 -F 32 -f "php /var/www/html/mobile/mobile_run.php"
-
-time=$(date "+%Y%m%d")
-
-if [ ! -f "/var/www/html/data/log/${time}-mobile.log" ]; then
-    touch "/var/www/html/data/log/${time}-mobile.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-mobile.log"

+ 1 - 1
docker/compose/mh/conf/php/php-swoole.ini

@@ -1327,7 +1327,7 @@ bcmath.scale = 0
 ; http://php.net/session.save-handler
 ;session.save_handler = file
 session.save_handler = redis
-session.save_path = tcp://172.26.95.252:6379
+session.save_path = tcp://172.22.67.133:6379
 
 ; Argument passed to save_handler.  In the case of files, this is the path
 ; where data files are stored. Note: Windows users have to change this

+ 1 - 1
docker/compose/mh/conf/php/php.ini

@@ -1325,7 +1325,7 @@ bcmath.scale = 0
 ; http://php.net/session.save-handler
 ;session.save_handler = file
 session.save_handler = redis
-session.save_path = tcp://172.26.95.252:6379
+session.save_path = tcp://172.22.67.133:6379
 
 ; Argument passed to save_handler.  In the case of files, this is the path
 ; where data files are stored. Note: Windows users have to change this

+ 8 - 0
docker/compose/mh/conf/php/spwan-start

@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+cmd="php /var/www/html$1"
+spawn-fcgi -a 0.0.0.0 -p 9000 -F $2 -f "$cmd"
+
+trap 'echo "Container is exiting"; exit' EXIT
+tail -f /dev/null

+ 10 - 0
docker/compose/mh/cpenv

@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# shellcheck disable=SC2039
+dest_dirs=("mh-macc" "mh-admin" "mh-cli" "mh-master" "mh-racc" "mh-slave" "mh-worker" "mh_storage")
+src_file=".env"
+
+for dir in "${dest_dirs[@]}"; do
+    cp "$src_file" "$dir/"
+    echo "$dir/"
+done

+ 0 - 9
docker/compose/mh/deploy.sh

@@ -1,9 +0,0 @@
-#!/bin/sh
-
-DOCKER_NETWORK=`docker network ls | grep net_mhshop | wc -l`
-if [ $DOCKER_NETWORK -eq 0 ]; then
-  echo 'docker network create net_mhshop'
-  docker network create net_mhshop
-fi
-
-docker network ls | grep net_mhshop

+ 3 - 0
docker/compose/mh/docker-compose.networks.yml

@@ -0,0 +1,3 @@
+networks:
+  homecuda_network:
+    external: true

+ 0 - 37
docker/compose/mh/mh-acc/docker-compose.yml

@@ -1,37 +0,0 @@
-version: "3.7"
-
-services:
-  nginx:
-    image: nginx:alpine
-    ports:
-      - "80:80"
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/nginxlog
-    container_name: "mh-nginx"
-    command: [nginx,'-g','daemon off;']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  mobile:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-      - ../conf/php/mobile-spwan-start:/usr/local/bin/docker-spwan-start
-    container_name: "mh-mobile"
-    command: ['docker-spwan-start']
-    networks:
-      - net_mhshop
-
-networks:
-  net_mhshop:
-    external: true

+ 27 - 32
docker/compose/mh/mh-admin/docker-compose.yml

@@ -1,56 +1,51 @@
-version: "3.7"
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
 
 services:
   nginx:
     image: nginx:alpine
     ports:
-      - "80:80"
+      - ${ADMINGINX_PORT}:80
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/nginx/nginx_admin.conf:/etc/nginx/nginx.conf:ro
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/nginxlog
-      # - /nfs/mhmerchant:/var/www/html/merchant
-    container_name: "mh-nginx"
-    command: [nginx,'-g','daemon off;']
+      - ../conf/nginx/admin.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-adnginx"
+    command: [ nginx,'-g','daemon off;' ]
     extra_hosts:
-      - "docker.hostip:172.17.0.1"
+      - docker.hostip:172.17.0.1
     networks:
-      - net_mhshop
+      - ${DOCKER_NET_NAME}
 
   mch:
     image: php-zts:7.3.18
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
       - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/php/mch-spwan-start:/usr/local/bin/docker-spwan-start
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-merchant"
-    command: [docker-spwan-start]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: '${CONTAINER_PREFIX}-admch'
+    command: [ spwan-start,"/mchsrv/mchsrv_run.php","8" ]
     networks:
-      - net_mhshop
+      - ${DOCKER_NET_NAME}
 
   web:
     image: php-fpm:alpine
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
       - ../conf/php-fpm/php-fpm.conf:/usr/local/etc/php-fpm.conf
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-web"
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: '${CONTAINER_PREFIX}-adweb'
     command: [php-fpm]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
     networks:
-      - net_mhshop
-
-networks:
-  net_mhshop:
-    external: true
+      - ${DOCKER_NET_NAME}

+ 11 - 23
docker/compose/mh/mh-cli/docker-compose.yml

@@ -1,19 +1,15 @@
-version: "3.7"
+version: "3.9"
 
 services:
   phpcli:
-    image: php-zts-debug:7.3.18
+    image: php-zts:7.3.18
     volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-php"
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
+      - /mnt/xyzshop:/var/www/html
+      - /mnt/xyzshop/docker/compose/homecuda/conf/etc/localtime:/etc/localtime:ro
+      - /mnt/xyzshop/docker/compose/homecuda/conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - /mnt/upload:/var/www/html/data/upload
+      - /mnt/shoplog:/var/www/html/data/log
+    container_name: "panda-php"
 
   phpswoole:
     image: php-swool-redis:latest
@@ -21,15 +17,7 @@ services:
       - ../../../../:/var/www/html
       - ../conf/etc/localtime:/etc/localtime:ro
       - ../conf/php/php-swoole.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
+      - /mnt/upload:/var/www/html/data/upload
+      - /mnt/shoplog:/var/www/html/data/log
       - ../conf/php/vender-init:/usr/local/bin/vender-init
-    container_name: "mh-swoole"
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-networks:
-  net_mhshop:
-    external: true
+    container_name: "panda-swoole"

+ 35 - 0
docker/compose/mh/mh-macc/docker-compose.yml

@@ -0,0 +1,35 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  nginx:
+    image: nginx:alpine
+    ports:
+      - ${MACCNGINX_PORT}:80
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/nginx/macc.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-mnginx"
+    command: [nginx,'-g','daemon off;']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  macc:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+    container_name: "${CONTAINER_PREFIX}-macc"
+    command: [ spwan-start,"/mobile/mobile_run.php","16" ]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 0 - 52
docker/compose/mh/mh-master-crond/docker-compose.yml

@@ -1,52 +0,0 @@
-version: "3.7"
-
-services:
-  crontabsrv:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-crontab"
-    command: [crond,"-f"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  cronsec:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-cronsec"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','second_queue']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  accedit:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-accedit"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','account_edit']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-networks:
-  net_mhshop:
-    external: true

+ 1 - 1
docker/compose/homecuda/master-crond/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.7"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   crontabsrv:

+ 35 - 0
docker/compose/mh/mh-racc/docker-compose.yml

@@ -0,0 +1,35 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  nginx:
+    image: nginx:alpine
+    ports:
+      - ${RACCNGINX_PORT}:80
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/nginx/racc.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-rnginx"
+    command: [nginx,'-g','daemon off;']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  racc:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+    container_name: "${CONTAINER_PREFIX}-racc"
+    command: [ spwan-start,"/racc/racc_run.php","16" ]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 0 - 150
docker/compose/mh/mh-slave-crond/docker-compose.yml

@@ -1,150 +0,0 @@
-version: "3.7"
-
-services:
-  crontabslave:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-slavecron"
-    command: [crond,"-f"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  taska:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-taska"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','admin_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  taskb:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-taskb"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','admin_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  taskc:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-taskc"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','admin_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  mtaska:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-mtaska"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','merchant_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  mtaskb:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-mtaskb"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','merchant_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  mtaskc:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-mtaskc"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','merchant_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-  mtaskd:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-mtaskd"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','merchant_task']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-
-  statutil:
-    image: php-zts:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-statutil"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','stat_util']
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
-    networks:
-      - net_mhshop
-
-networks:
-  net_mhshop:
-    external: true

+ 1 - 1
docker/compose/homecuda/slave-crond/docker-compose.yml

@@ -1,7 +1,7 @@
 version: "3.7"
 
 include:
-  - ../../docker-compose.networks.yml
+  - ../docker-compose.networks.yml
 
 services:
   crontabslave:

+ 8 - 5
docker/compose/mh/mh-storage/docker-compose.yml

@@ -1,15 +1,18 @@
 version: "3.7"
 
+include:
+  - ../docker-compose.networks.yml
+
 services:
   redisrv:
     image: redis:alpine
     ports:
-      - "6379:6379"
+      - ${SHOP_REDIS_PORT}:6379
     volumes:
       - ../conf/etc/localtime:/etc/localtime:ro
       - ../conf/redis/6379.conf:/etc/redis/redis.conf
-      - /mnt/mhredis:/data
-    container_name: "mh-redis"
+      - /mnt/redisdata:/data
+    container_name: "${CONTAINER_PREFIX}-redis"
     command: [redis-server,"/etc/redis/redis.conf"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
+    networks:
+      - ${DOCKER_NET_NAME}

+ 26 - 34
docker/compose/mh/mh-worker/docker-compose.yml

@@ -1,52 +1,44 @@
-version: "3.7"
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
 
 services:
   cordsrv:
-    image: php-sredis:7.3.18
+    image: php-swool-redis:latest
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-swoole.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-codispatcher"
-    command: [php,"/var/www/html/rdispatcher/codispatcher.php","16"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
+      - ../conf/php/php-swoole-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wcodispatcher"
+    command: [php,"${SHOP_ROOT_PATH}/rdispatcher/codispatcher.php","1"]
     networks:
-      - net_mhshop
+      - ${DOCKER_NET_NAME}
 
   queuesrv:
-    image: php-zts:7.3.18
+    image: php-zts-debug:7.3.18
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
       - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-queue"
-    command: [php,"/var/www/html/queue/index.php", "queue", "index"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wqueue"
+    command: [php,"${SHOP_ROOT_PATH}/queue/index.php", "queue", "index"]
     networks:
-      - net_mhshop
+      - ${DOCKER_NET_NAME}
 
   searcher:
-    image: php-zts:7.3.18
+    image: php-zts-debug:7.3.18
     volumes:
-      - ../../../../:/var/www/html
+      - ../../../../:${SHOP_ROOT_PATH}
       - ../conf/etc/localtime:/etc/localtime:ro
       - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-      - /nfs/mhupload:/var/www/html/data/upload
-      - /mnt/mhlog:/var/www/html/data/log
-    container_name: "mh-searcher"
-    command: [php, "/var/www/html/searcher.php"]
-    extra_hosts:
-      - "docker.hostip:172.17.0.1"
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wsearcher"
+    command: [php, "${SHOP_ROOT_PATH}/searcher.php"]
     networks:
-      - net_mhshop
-
-
-networks:
-  net_mhshop:
-    external: true
+      - ${DOCKER_NET_NAME}

+ 0 - 44
docker/compose/stanmac/acc/docker-compose.yml

@@ -1,44 +0,0 @@
-version: "3.7"
-
-services:
-  nginxsrv:
-    image: nginx:alpine
-    ports:
-      - "80:80"
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/WebProject/wapshop/dist:/var/www/html/mshop
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/nginx/cert:/etc/nginx/cert
-      - ../conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
-    container_name: "panda-nginx"
-    command: [nginx,'-g','daemon off;']
-
-  mobilesrv:
-    image: php-zts:7.3.18
-    ports:
-      - "9100:9100"
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-      - ../conf/php/mobile-spwan-start:/usr/local/bin/docker-spwan-start
-    container_name: "panda-mobile"
-    command: [docker-spwan-start]
-
-  raccsrv:
-    image: php-zts:7.3.18
-    ports:
-      - "9101:9101"
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-local-debug.ini:/usr/local/etc/php/php.ini
-      - ../conf/php/racc-spwan-start:/usr/local/bin/docker-spwan-start
-    container_name: "panda-racc"
-    command: [docker-spwan-start]

+ 0 - 30
docker/compose/stanmac/admin/docker-compose.yml

@@ -1,30 +0,0 @@
-version: "3.7"
-
-services:
-  mchsrv:
-    image: php-zts:7.3.18
-    ports:
-      - "9102:9102"
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-      - ../conf/php/mch-spwan-start:/usr/local/bin/docker-spwan-start
-    container_name: "panda-merchant"
-    command: [docker-spwan-start]
-
-  websrv:
-      image: php-fpm-ex:alpine
-      ports:
-        - "9000:9000"
-      volumes:
-        - ../../../../:/var/www/html
-        - /Volumes/Transcend/upload:/var/www/html/data/upload
-        - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-        - ../conf/etc/localtime:/etc/localtime:ro
-        - ../conf/php/php.ini:/usr/local/etc/php/php.ini
-        - ../conf/php-fpm/php-fpm.conf:/usr/local/etc/php-fpm.conf
-      container_name: "panda-web"
-      command: [php-fpm]

+ 0 - 32
docker/compose/stanmac/cli/docker-compose.yml

@@ -1,32 +0,0 @@
-version: "3.9"
-
-services:
-  phpcli:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/amount:/var/www/html/data/amount
-    container_name: "panda-php"
-
-  phpswoole:
-    image: php-swool-redis:latest
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-swoole-debug.ini:/usr/local/etc/php/php.ini
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-    container_name: "panda-swoole"
-
-  pythoncli:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-python"

+ 0 - 15
docker/compose/stanmac/conf/crontab/root

@@ -1,15 +0,0 @@
-# do daily/weekly/monthly maintenance
-# min	hour	day	month	weekday	command
-*/15	*	*	*	*	run-parts /etc/periodic/15min
-0	*	*	*	*	run-parts /etc/periodic/hourly
-0	2	*	*	*	run-parts /etc/periodic/daily
-0	3	*	*	6	run-parts /etc/periodic/weekly
-0	5	1	*	*	run-parts /etc/periodic/monthly
-0   3   *   *   *   php /var/www/html/crontab/index.php date index
-0   9   *   *   *   php /var/www/html/crontab/index.php date nine_clock
-0   10  *   *   *   php /var/www/html/crontab/index.php date ten_clock
-#*    *   *   *   *   php /var/www/html/crontab/index.php minutes index
-0   10-20/1 *   *   *   php /var/www/html/crontab/index.php hour index
-0   3   1   */1 *   php /var/www/html/crontab/index.php month index
-*    *   *   *   *   echo "test" >> /var/test.log
-*/1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance

+ 0 - 13
docker/compose/stanmac/conf/php/docker-search-start

@@ -1,13 +0,0 @@
-#!/bin/sh
-set -e
-
-php /var/www/html/searcher.php
-
-time=$(date "+%Y%m%d")
-appid='search'
-
-if [ ! -f "/var/www/html/data/log/${time}-${appid}.log" ]; then
-    touch "/var/www/html/data/log/${time}-${appid}.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-${appid}.log"

+ 0 - 12
docker/compose/stanmac/conf/php/mch-spwan-start

@@ -1,12 +0,0 @@
-#!/bin/sh
-set -e
-spawn-fcgi -a 0.0.0.0 -p 9102 -F 1 -f "php /var/www/html/mchsrv/mchsrv_run.php"
-
-
-time=$(date "+%Y%m%d")
-
-if [ ! -f "/var/www/html/data/log/${time}-mchsrv.log" ]; then
-    touch "/var/www/html/data/log/${time}-mchsrv.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-mchsrv.log"

+ 0 - 11
docker/compose/stanmac/conf/php/mobile-spwan-start

@@ -1,11 +0,0 @@
-#!/bin/sh
-set -e
-spawn-fcgi -a 0.0.0.0 -p 9100 -F 1 -f "php /var/www/html/mobile/mobile_run.php"
-
-time=$(date "+%Y%m%d")
-
-if [ ! -f "/var/www/html/data/log/${time}-mobile.log" ]; then
-    touch "/var/www/html/data/log/${time}-mobile.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-mobile.log"

文件差異過大導致無法顯示
+ 0 - 1953
docker/compose/stanmac/conf/php/php-swoole-debug.ini


+ 0 - 11
docker/compose/stanmac/conf/php/racc-spwan-start

@@ -1,11 +0,0 @@
-#!/bin/sh
-set -e
-spawn-fcgi -a 0.0.0.0 -p 9101 -F 1 -f "php /var/www/html/racc/racc.php"
-
-time=$(date "+%Y%m%d")
-
-if [ ! -f "/var/www/html/data/log/${time}-racc.log" ]; then
-    touch "/var/www/html/data/log/${time}-racc.log"
-fi
-
-tail -f "/var/www/html/data/log/${time}-racc.log"

+ 0 - 944
docker/compose/stanmac/conf/redis/6380.conf

@@ -1,944 +0,0 @@
-## Generated by install_server.sh ##
-# Redis configuration file example.
-#
-# Note that in order to read the configuration file, Redis must be
-# started with the file path as first argument:
-#
-# ./redis-server /path/to/redis.conf
-
-# Note on units: when memory size is needed, it is possible to specify
-# it in the usual form of 1k 5GB 4M and so forth:
-#
-# 1k => 1000 bytes
-# 1kb => 1024 bytes
-# 1m => 1000000 bytes
-# 1mb => 1024*1024 bytes
-# 1g => 1000000000 bytes
-# 1gb => 1024*1024*1024 bytes
-#
-# units are case insensitive so 1GB 1Gb 1gB are all the same.
-
-################################## INCLUDES ###################################
-
-# Include one or more other config files here.  This is useful if you
-# have a standard template that goes to all Redis servers but also need
-# to customize a few per-server settings.  Include files can include
-# other files, so use this wisely.
-#
-# Notice option "include" won't be rewritten by command "CONFIG REWRITE"
-# from admin or Redis Sentinel. Since Redis always uses the last processed
-# line as value of a configuration directive, you'd better put includes
-# at the beginning of this file to avoid overwriting config change at runtime.
-#
-# If instead you are interested in using includes to override configuration
-# options, it is better to use include as the last line.
-#
-# include /path/to/local.conf
-# include /path/to/other.conf
-
-################################ GENERAL  #####################################
-
-# By default Redis does not run as a daemon. Use 'yes' if you need it.
-# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
-daemonize yes
-
-# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
-# default. You can specify a custom pid file location here.
-pidfile /var/run/redis.pid
-
-# Accept connections on the specified port, default is 6379.
-# If port 0 is specified Redis will not listen on a TCP socket.
-port 6380
-
-# TCP listen() backlog.
-#
-# In high requests-per-second environments you need an high backlog in order
-# to avoid slow clients connections issues. Note that the Linux kernel
-# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
-# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
-# in order to get the desired effect.
-tcp-backlog 511
-
-# By default Redis listens for connections from all the network interfaces
-# available on the server. It is possible to listen to just one or multiple
-# interfaces using the "bind" configuration directive, followed by one or
-# more IP addresses.
-#
-# Examples:
-#
-# bind 192.168.1.100 10.0.0.1
-bind 0.0.0.0
-
-# Specify the path for the Unix socket that will be used to listen for
-# incoming connections. There is no default, so Redis will not listen
-# on a unix socket when not specified.
-#
-# unixsocket /tmp/redis.sock
-# unixsocketperm 700
-
-# Close the connection after a client is idle for N seconds (0 to disable)
-timeout 0
-
-# TCP keepalive.
-#
-# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
-# of communication. This is useful for two reasons:
-#
-# 1) Detect dead peers.
-# 2) Take the connection alive from the point of view of network
-#    equipment in the middle.
-#
-# On Linux, the specified value (in seconds) is the period used to send ACKs.
-# Note that to close the connection the double of the time is needed.
-# On other kernels the period depends on the kernel configuration.
-#
-# A reasonable value for this option is 60 seconds.
-tcp-keepalive 0
-
-# Specify the server verbosity level.
-# This can be one of:
-# debug (a lot of information, useful for development/testing)
-# verbose (many rarely useful info, but not a mess like the debug level)
-# notice (moderately verbose, what you want in production probably)
-# warning (only very important / critical messages are logged)
-loglevel notice
-
-# Specify the log file name. Also the empty string can be used to force
-# Redis to log on the standard output. Note that if you use standard
-# output for logging but daemonize, logs will be sent to /dev/null
-logfile /var/redis/redis-6380.log
-
-# To enable logging to the system logger, just set 'syslog-enabled' to yes,
-# and optionally update the other syslog parameters to suit your needs.
-# syslog-enabled no
-
-# Specify the syslog identity.
-# syslog-ident redis
-
-# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
-# syslog-facility local0
-
-# Set the number of databases. The default database is DB 0, you can select
-# a different one on a per-connection basis using SELECT <dbid> where
-# dbid is a number between 0 and 'databases'-1
-databases 16
-
-################################ SNAPSHOTTING  ################################
-#
-# Save the DB on disk:
-#
-#   save <seconds> <changes>
-#
-#   Will save the DB if both the given number of seconds and the given
-#   number of write operations against the DB occurred.
-#
-#   In the example below the behaviour will be to save:
-#   after 900 sec (15 min) if at least 1 key changed
-#   after 300 sec (5 min) if at least 10 keys changed
-#   after 60 sec if at least 10000 keys changed
-#
-#   Note: you can disable saving completely by commenting out all "save" lines.
-#
-#   It is also possible to remove all the previously configured save
-#   points by adding a save directive with a single empty string argument
-#   like in the following example:
-#
-#   save ""
-
-save 900 1
-save 300 10
-save 60 10000
-
-# By default Redis will stop accepting writes if RDB snapshots are enabled
-# (at least one save point) and the latest background save failed.
-# This will make the user aware (in a hard way) that data is not persisting
-# on disk properly, otherwise chances are that no one will notice and some
-# disaster will happen.
-#
-# If the background saving process will start working again Redis will
-# automatically allow writes again.
-#
-# However if you have setup your proper monitoring of the Redis server
-# and persistence, you may want to disable this feature so that Redis will
-# continue to work as usual even if there are problems with disk,
-# permissions, and so forth.
-stop-writes-on-bgsave-error yes
-
-# Compress string objects using LZF when dump .rdb databases?
-# For default that's set to 'yes' as it's almost always a win.
-# If you want to save some CPU in the saving child set it to 'no' but
-# the dataset will likely be bigger if you have compressible values or keys.
-rdbcompression yes
-
-# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
-# This makes the format more resistant to corruption but there is a performance
-# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
-# for maximum performances.
-#
-# RDB files created with checksum disabled have a checksum of zero that will
-# tell the loading code to skip the check.
-rdbchecksum yes
-
-# The filename where to dump the DB
-dbfilename dump.rdb
-
-# The working directory.
-#
-# The DB will be written inside this directory, with the filename specified
-# above using the 'dbfilename' configuration directive.
-#
-# The Append Only File will also be created inside this directory.
-#
-# Note that you must specify a directory here, not a file name.
-dir /var/redis
-
-################################# REPLICATION #################################
-
-# Master-Slave replication. Use slaveof to make a Redis instance a copy of
-# another Redis server. A few things to understand ASAP about Redis replication.
-#
-# 1) Redis replication is asynchronous, but you can configure a master to
-#    stop accepting writes if it appears to be not connected with at least
-#    a given number of slaves.
-# 2) Redis slaves are able to perform a partial resynchronization with the
-#    master if the replication link is lost for a relatively small amount of
-#    time. You may want to configure the replication backlog size (see the next
-#    sections of this file) with a sensible value depending on your needs.
-# 3) Replication is automatic and does not need user intervention. After a
-#    network partition slaves automatically try to reconnect to masters
-#    and resynchronize with them.
-#
-# slaveof <masterip> <masterport>
-
-# If the master is password protected (using the "requirepass" configuration
-# directive below) it is possible to tell the slave to authenticate before
-# starting the replication synchronization process, otherwise the master will
-# refuse the slave request.
-#
-# masterauth <master-password>
-
-# When a slave loses its connection with the master, or when the replication
-# is still in progress, the slave can act in two different ways:
-#
-# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
-#    still reply to client requests, possibly with out of date data, or the
-#    data set may just be empty if this is the first synchronization.
-#
-# 2) if slave-serve-stale-data is set to 'no' the slave will reply with
-#    an error "SYNC with master in progress" to all the kind of commands
-#    but to INFO and SLAVEOF.
-#
-slave-serve-stale-data yes
-
-# You can configure a slave instance to accept writes or not. Writing against
-# a slave instance may be useful to store some ephemeral data (because data
-# written on a slave will be easily deleted after resync with the master) but
-# may also cause problems if clients are writing to it because of a
-# misconfiguration.
-#
-# Since Redis 2.6 by default slaves are read-only.
-#
-# Note: read only slaves are not designed to be exposed to untrusted clients
-# on the internet. It's just a protection layer against misuse of the instance.
-# Still a read only slave exports by default all the administrative commands
-# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
-# security of read only slaves using 'rename-command' to shadow all the
-# administrative / dangerous commands.
-slave-read-only yes
-
-# Replication SYNC strategy: disk or socket.
-#
-# -------------------------------------------------------
-# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY
-# -------------------------------------------------------
-#
-# New slaves and reconnecting slaves that are not able to continue the replication
-# process just receiving differences, need to do what is called a "full
-# synchronization". An RDB file is transmitted from the master to the slaves.
-# The transmission can happen in two different ways:
-#
-# 1) Disk-backed: The Redis master creates a new process that writes the RDB
-#                 file on disk. Later the file is transferred by the parent
-#                 process to the slaves incrementally.
-# 2) Diskless: The Redis master creates a new process that directly writes the
-#              RDB file to slave sockets, without touching the disk at all.
-#
-# With disk-backed replication, while the RDB file is generated, more slaves
-# can be queued and served with the RDB file as soon as the current child producing
-# the RDB file finishes its work. With diskless replication instead once
-# the transfer starts, new slaves arriving will be queued and a new transfer
-# will start when the current one terminates.
-#
-# When diskless replication is used, the master waits a configurable amount of
-# time (in seconds) before starting the transfer in the hope that multiple slaves
-# will arrive and the transfer can be parallelized.
-#
-# With slow disks and fast (large bandwidth) networks, diskless replication
-# works better.
-repl-diskless-sync no
-
-# When diskless replication is enabled, it is possible to configure the delay
-# the server waits in order to spawn the child that transfers the RDB via socket
-# to the slaves.
-#
-# This is important since once the transfer starts, it is not possible to serve
-# new slaves arriving, that will be queued for the next RDB transfer, so the server
-# waits a delay in order to let more slaves arrive.
-#
-# The delay is specified in seconds, and by default is 5 seconds. To disable
-# it entirely just set it to 0 seconds and the transfer will start ASAP.
-repl-diskless-sync-delay 5
-
-# Slaves send PINGs to server in a predefined interval. It's possible to change
-# this interval with the repl_ping_slave_period option. The default value is 10
-# seconds.
-#
-# repl-ping-slave-period 10
-
-# The following option sets the replication timeout for:
-#
-# 1) Bulk transfer I/O during SYNC, from the point of view of slave.
-# 2) Master timeout from the point of view of slaves (data, pings).
-# 3) Slave timeout from the point of view of masters (REPLCONF ACK pings).
-#
-# It is important to make sure that this value is greater than the value
-# specified for repl-ping-slave-period otherwise a timeout will be detected
-# every time there is low traffic between the master and the slave.
-#
-# repl-timeout 60
-
-# Disable TCP_NODELAY on the slave socket after SYNC?
-#
-# If you select "yes" Redis will use a smaller number of TCP packets and
-# less bandwidth to send data to slaves. But this can add a delay for
-# the data to appear on the slave side, up to 40 milliseconds with
-# Linux kernels using a default configuration.
-#
-# If you select "no" the delay for data to appear on the slave side will
-# be reduced but more bandwidth will be used for replication.
-#
-# By default we optimize for low latency, but in very high traffic conditions
-# or when the master and slaves are many hops away, turning this to "yes" may
-# be a good idea.
-repl-disable-tcp-nodelay no
-
-# Set the replication backlog size. The backlog is a buffer that accumulates
-# slave data when slaves are disconnected for some time, so that when a slave
-# wants to reconnect again, often a full resync is not needed, but a partial
-# resync is enough, just passing the portion of data the slave missed while
-# disconnected.
-#
-# The bigger the replication backlog, the longer the time the slave can be
-# disconnected and later be able to perform a partial resynchronization.
-#
-# The backlog is only allocated once there is at least a slave connected.
-#
-# repl-backlog-size 1mb
-
-# After a master has no longer connected slaves for some time, the backlog
-# will be freed. The following option configures the amount of seconds that
-# need to elapse, starting from the time the last slave disconnected, for
-# the backlog buffer to be freed.
-#
-# A value of 0 means to never release the backlog.
-#
-# repl-backlog-ttl 3600
-
-# The slave priority is an integer number published by Redis in the INFO output.
-# It is used by Redis Sentinel in order to select a slave to promote into a
-# master if the master is no longer working correctly.
-#
-# A slave with a low priority number is considered better for promotion, so
-# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
-# pick the one with priority 10, that is the lowest.
-#
-# However a special priority of 0 marks the slave as not able to perform the
-# role of master, so a slave with priority of 0 will never be selected by
-# Redis Sentinel for promotion.
-#
-# By default the priority is 100.
-slave-priority 100
-
-# It is possible for a master to stop accepting writes if there are less than
-# N slaves connected, having a lag less or equal than M seconds.
-#
-# The N slaves need to be in "online" state.
-#
-# The lag in seconds, that must be <= the specified value, is calculated from
-# the last ping received from the slave, that is usually sent every second.
-#
-# This option does not GUARANTEE that N replicas will accept the write, but
-# will limit the window of exposure for lost writes in case not enough slaves
-# are available, to the specified number of seconds.
-#
-# For example to require at least 3 slaves with a lag <= 10 seconds use:
-#
-# min-slaves-to-write 3
-# min-slaves-max-lag 10
-#
-# Setting one or the other to 0 disables the feature.
-#
-# By default min-slaves-to-write is set to 0 (feature disabled) and
-# min-slaves-max-lag is set to 10.
-
-################################## SECURITY ###################################
-
-# Require clients to issue AUTH <PASSWORD> before processing any other
-# commands.  This might be useful in environments in which you do not trust
-# others with access to the host running redis-server.
-#
-# This should stay commented out for backward compatibility and because most
-# people do not need auth (e.g. they run their own servers).
-#
-# Warning: since Redis is pretty fast an outside user can try up to
-# 150k passwords per second against a good box. This means that you should
-# use a very strong password otherwise it will be very easy to break.
-#
-# requirepass foobared
-
-# Command renaming.
-#
-# It is possible to change the name of dangerous commands in a shared
-# environment. For instance the CONFIG command may be renamed into something
-# hard to guess so that it will still be available for internal-use tools
-# but not available for general clients.
-#
-# Example:
-#
-# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
-#
-# It is also possible to completely kill a command by renaming it into
-# an empty string:
-#
-# rename-command CONFIG ""
-#
-# Please note that changing the name of commands that are logged into the
-# AOF file or transmitted to slaves may cause problems.
-
-################################### LIMITS ####################################
-
-# Set the max number of connected clients at the same time. By default
-# this limit is set to 10000 clients, however if the Redis server is not
-# able to configure the process file limit to allow for the specified limit
-# the max number of allowed clients is set to the current file limit
-# minus 32 (as Redis reserves a few file descriptors for internal uses).
-#
-# Once the limit is reached Redis will close all the new connections sending
-# an error 'max number of clients reached'.
-#
-# maxclients 10000
-
-# Don't use more memory than the specified amount of bytes.
-# When the memory limit is reached Redis will try to remove keys
-# according to the eviction policy selected (see maxmemory-policy).
-#
-# If Redis can't remove keys according to the policy, or if the policy is
-# set to 'noeviction', Redis will start to reply with errors to commands
-# that would use more memory, like SET, LPUSH, and so on, and will continue
-# to reply to read-only commands like GET.
-#
-# This option is usually useful when using Redis as an LRU cache, or to set
-# a hard memory limit for an instance (using the 'noeviction' policy).
-#
-# WARNING: If you have slaves attached to an instance with maxmemory on,
-# the size of the output buffers needed to feed the slaves are subtracted
-# from the used memory count, so that network problems / resyncs will
-# not trigger a loop where keys are evicted, and in turn the output
-# buffer of slaves is full with DELs of keys evicted triggering the deletion
-# of more keys, and so forth until the database is completely emptied.
-#
-# In short... if you have slaves attached it is suggested that you set a lower
-# limit for maxmemory so that there is some free RAM on the system for slave
-# output buffers (but this is not needed if the policy is 'noeviction').
-#
-# maxmemory <bytes>
-
-# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
-# is reached. You can select among five behaviors:
-#
-# volatile-lru -> remove the key with an expire set using an LRU algorithm
-# allkeys-lru -> remove any key according to the LRU algorithm
-# volatile-random -> remove a random key with an expire set
-# allkeys-random -> remove a random key, any key
-# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
-# noeviction -> don't expire at all, just return an error on write operations
-#
-# Note: with any of the above policies, Redis will return an error on write
-#       operations, when there are no suitable keys for eviction.
-#
-#       At the date of writing these commands are: set setnx setex append
-#       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
-#       sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
-#       zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
-#       getset mset msetnx exec sort
-#
-# The default is:
-#
-# maxmemory-policy noeviction
-
-# LRU and minimal TTL algorithms are not precise algorithms but approximated
-# algorithms (in order to save memory), so you can tune it for speed or
-# accuracy. For default Redis will check five keys and pick the one that was
-# used less recently, you can change the sample size using the following
-# configuration directive.
-#
-# The default of 5 produces good enough results. 10 Approximates very closely
-# true LRU but costs a bit more CPU. 3 is very fast but not very accurate.
-#
-# maxmemory-samples 5
-
-############################## APPEND ONLY MODE ###############################
-
-# By default Redis asynchronously dumps the dataset on disk. This mode is
-# good enough in many applications, but an issue with the Redis process or
-# a power outage may result into a few minutes of writes lost (depending on
-# the configured save points).
-#
-# The Append Only File is an alternative persistence mode that provides
-# much better durability. For instance using the default data fsync policy
-# (see later in the config file) Redis can lose just one second of writes in a
-# dramatic event like a server power outage, or a single write if something
-# wrong with the Redis process itself happens, but the operating system is
-# still running correctly.
-#
-# AOF and RDB persistence can be enabled at the same time without problems.
-# If the AOF is enabled on startup Redis will load the AOF, that is the file
-# with the better durability guarantees.
-#
-# Please check http://redis.io/topics/persistence for more information.
-
-appendonly no
-
-# The name of the append only file (default: "appendonly.aof")
-
-appendfilename "appendonly.aof"
-
-# The fsync() call tells the Operating System to actually write data on disk
-# instead of waiting for more data in the output buffer. Some OS will really flush
-# data on disk, some other OS will just try to do it ASAP.
-#
-# Redis supports three different modes:
-#
-# no: don't fsync, just let the OS flush the data when it wants. Faster.
-# always: fsync after every write to the append only log. Slow, Safest.
-# everysec: fsync only one time every second. Compromise.
-#
-# The default is "everysec", as that's usually the right compromise between
-# speed and data safety. It's up to you to understand if you can relax this to
-# "no" that will let the operating system flush the output buffer when
-# it wants, for better performances (but if you can live with the idea of
-# some data loss consider the default persistence mode that's snapshotting),
-# or on the contrary, use "always" that's very slow but a bit safer than
-# everysec.
-#
-# More details please check the following article:
-# http://antirez.com/post/redis-persistence-demystified.html
-#
-# If unsure, use "everysec".
-
-# appendfsync always
-appendfsync everysec
-# appendfsync no
-
-# When the AOF fsync policy is set to always or everysec, and a background
-# saving process (a background save or AOF log background rewriting) is
-# performing a lot of I/O against the disk, in some Linux configurations
-# Redis may block too long on the fsync() call. Note that there is no fix for
-# this currently, as even performing fsync in a different thread will block
-# our synchronous write(2) call.
-#
-# In order to mitigate this problem it's possible to use the following option
-# that will prevent fsync() from being called in the main process while a
-# BGSAVE or BGREWRITEAOF is in progress.
-#
-# This means that while another child is saving, the durability of Redis is
-# the same as "appendfsync none". In practical terms, this means that it is
-# possible to lose up to 30 seconds of log in the worst scenario (with the
-# default Linux settings).
-#
-# If you have latency problems turn this to "yes". Otherwise leave it as
-# "no" that is the safest pick from the point of view of durability.
-
-no-appendfsync-on-rewrite no
-
-# Automatic rewrite of the append only file.
-# Redis is able to automatically rewrite the log file implicitly calling
-# BGREWRITEAOF when the AOF log size grows by the specified percentage.
-#
-# This is how it works: Redis remembers the size of the AOF file after the
-# latest rewrite (if no rewrite has happened since the restart, the size of
-# the AOF at startup is used).
-#
-# This base size is compared to the current size. If the current size is
-# bigger than the specified percentage, the rewrite is triggered. Also
-# you need to specify a minimal size for the AOF file to be rewritten, this
-# is useful to avoid rewriting the AOF file even if the percentage increase
-# is reached but it is still pretty small.
-#
-# Specify a percentage of zero in order to disable the automatic AOF
-# rewrite feature.
-
-auto-aof-rewrite-percentage 100
-auto-aof-rewrite-min-size 64mb
-
-# An AOF file may be found to be truncated at the end during the Redis
-# startup process, when the AOF data gets loaded back into memory.
-# This may happen when the system where Redis is running
-# crashes, especially when an ext4 filesystem is mounted without the
-# data=ordered option (however this can't happen when Redis itself
-# crashes or aborts but the operating system still works correctly).
-#
-# Redis can either exit with an error when this happens, or load as much
-# data as possible (the default now) and start if the AOF file is found
-# to be truncated at the end. The following option controls this behavior.
-#
-# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
-# the Redis server starts emitting a log to inform the user of the event.
-# Otherwise if the option is set to no, the server aborts with an error
-# and refuses to start. When the option is set to no, the user requires
-# to fix the AOF file using the "redis-check-aof" utility before to restart
-# the server.
-#
-# Note that if the AOF file will be found to be corrupted in the middle
-# the server will still exit with an error. This option only applies when
-# Redis will try to read more data from the AOF file but not enough bytes
-# will be found.
-aof-load-truncated yes
-
-################################ LUA SCRIPTING  ###############################
-
-# Max execution time of a Lua script in milliseconds.
-#
-# If the maximum execution time is reached Redis will log that a script is
-# still in execution after the maximum allowed time and will start to
-# reply to queries with an error.
-#
-# When a long running script exceeds the maximum execution time only the
-# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
-# used to stop a script that did not yet called write commands. The second
-# is the only way to shut down the server in the case a write command was
-# already issued by the script but the user doesn't want to wait for the natural
-# termination of the script.
-#
-# Set it to 0 or a negative value for unlimited execution without warnings.
-lua-time-limit 5000
-
-################################ REDIS CLUSTER  ###############################
-#
-# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however
-# in order to mark it as "mature" we need to wait for a non trivial percentage
-# of users to deploy it in production.
-# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#
-# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
-# started as cluster nodes can. In order to start a Redis instance as a
-# cluster node enable the cluster support uncommenting the following:
-#
-# cluster-enabled yes
-
-# Every cluster node has a cluster configuration file. This file is not
-# intended to be edited by hand. It is created and updated by Redis nodes.
-# Every Redis Cluster node requires a different cluster configuration file.
-# Make sure that instances running in the same system do not have
-# overlapping cluster configuration file names.
-#
-# cluster-config-file nodes-6379.conf
-
-# Cluster node timeout is the amount of milliseconds a node must be unreachable
-# for it to be considered in failure state.
-# Most other internal time limits are multiple of the node timeout.
-#
-# cluster-node-timeout 15000
-
-# A slave of a failing master will avoid to start a failover if its data
-# looks too old.
-#
-# There is no simple way for a slave to actually have a exact measure of
-# its "data age", so the following two checks are performed:
-#
-# 1) If there are multiple slaves able to failover, they exchange messages
-#    in order to try to give an advantage to the slave with the best
-#    replication offset (more data from the master processed).
-#    Slaves will try to get their rank by offset, and apply to the start
-#    of the failover a delay proportional to their rank.
-#
-# 2) Every single slave computes the time of the last interaction with
-#    its master. This can be the last ping or command received (if the master
-#    is still in the "connected" state), or the time that elapsed since the
-#    disconnection with the master (if the replication link is currently down).
-#    If the last interaction is too old, the slave will not try to failover
-#    at all.
-#
-# The point "2" can be tuned by user. Specifically a slave will not perform
-# the failover if, since the last interaction with the master, the time
-# elapsed is greater than:
-#
-#   (node-timeout * slave-validity-factor) + repl-ping-slave-period
-#
-# So for example if node-timeout is 30 seconds, and the slave-validity-factor
-# is 10, and assuming a default repl-ping-slave-period of 10 seconds, the
-# slave will not try to failover if it was not able to talk with the master
-# for longer than 310 seconds.
-#
-# A large slave-validity-factor may allow slaves with too old data to failover
-# a master, while a too small value may prevent the cluster from being able to
-# elect a slave at all.
-#
-# For maximum availability, it is possible to set the slave-validity-factor
-# to a value of 0, which means, that slaves will always try to failover the
-# master regardless of the last time they interacted with the master.
-# (However they'll always try to apply a delay proportional to their
-# offset rank).
-#
-# Zero is the only value able to guarantee that when all the partitions heal
-# the cluster will always be able to continue.
-#
-# cluster-slave-validity-factor 10
-
-# Cluster slaves are able to migrate to orphaned masters, that are masters
-# that are left without working slaves. This improves the cluster ability
-# to resist to failures as otherwise an orphaned master can't be failed over
-# in case of failure if it has no working slaves.
-#
-# Slaves migrate to orphaned masters only if there are still at least a
-# given number of other working slaves for their old master. This number
-# is the "migration barrier". A migration barrier of 1 means that a slave
-# will migrate only if there is at least 1 other working slave for its master
-# and so forth. It usually reflects the number of slaves you want for every
-# master in your cluster.
-#
-# Default is 1 (slaves migrate only if their masters remain with at least
-# one slave). To disable migration just set it to a very large value.
-# A value of 0 can be set but is useful only for debugging and dangerous
-# in production.
-#
-# cluster-migration-barrier 1
-
-# By default Redis Cluster nodes stop accepting queries if they detect there
-# is at least an hash slot uncovered (no available node is serving it).
-# This way if the cluster is partially down (for example a range of hash slots
-# are no longer covered) all the cluster becomes, eventually, unavailable.
-# It automatically returns available as soon as all the slots are covered again.
-#
-# However sometimes you want the subset of the cluster which is working,
-# to continue to accept queries for the part of the key space that is still
-# covered. In order to do so, just set the cluster-require-full-coverage
-# option to no.
-#
-# cluster-require-full-coverage yes
-
-# In order to setup your cluster make sure to read the documentation
-# available at http://redis.io web site.
-
-################################## SLOW LOG ###################################
-
-# The Redis Slow Log is a system to log queries that exceeded a specified
-# execution time. The execution time does not include the I/O operations
-# like talking with the client, sending the reply and so forth,
-# but just the time needed to actually execute the command (this is the only
-# stage of command execution where the thread is blocked and can not serve
-# other requests in the meantime).
-#
-# You can configure the slow log with two parameters: one tells Redis
-# what is the execution time, in microseconds, to exceed in order for the
-# command to get logged, and the other parameter is the length of the
-# slow log. When a new command is logged the oldest one is removed from the
-# queue of logged commands.
-
-# The following time is expressed in microseconds, so 1000000 is equivalent
-# to one second. Note that a negative number disables the slow log, while
-# a value of zero forces the logging of every command.
-slowlog-log-slower-than 10000
-
-# There is no limit to this length. Just be aware that it will consume memory.
-# You can reclaim memory used by the slow log with SLOWLOG RESET.
-slowlog-max-len 128
-
-################################ LATENCY MONITOR ##############################
-
-# The Redis latency monitoring subsystem samples different operations
-# at runtime in order to collect data related to possible sources of
-# latency of a Redis instance.
-#
-# Via the LATENCY command this information is available to the user that can
-# print graphs and obtain reports.
-#
-# The system only logs operations that were performed in a time equal or
-# greater than the amount of milliseconds specified via the
-# latency-monitor-threshold configuration directive. When its value is set
-# to zero, the latency monitor is turned off.
-#
-# By default latency monitoring is disabled since it is mostly not needed
-# if you don't have latency issues, and collecting data has a performance
-# impact, that while very small, can be measured under big load. Latency
-# monitoring can easily be enabled at runtime using the command
-# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
-latency-monitor-threshold 0
-
-############################# EVENT NOTIFICATION ##############################
-
-# Redis can notify Pub/Sub clients about events happening in the key space.
-# This feature is documented at http://redis.io/topics/notifications
-#
-# For instance if keyspace events notification is enabled, and a client
-# performs a DEL operation on key "foo" stored in the Database 0, two
-# messages will be published via Pub/Sub:
-#
-# PUBLISH __keyspace@0__:foo del
-# PUBLISH __keyevent@0__:del foo
-#
-# It is possible to select the events that Redis will notify among a set
-# of classes. Every class is identified by a single character:
-#
-#  K     Keyspace events, published with __keyspace@<db>__ prefix.
-#  E     Keyevent events, published with __keyevent@<db>__ prefix.
-#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
-#  $     String commands
-#  l     List commands
-#  s     Set commands
-#  h     Hash commands
-#  z     Sorted set commands
-#  x     Expired events (events generated every time a key expires)
-#  e     Evicted events (events generated when a key is evicted for maxmemory)
-#  A     Alias for g$lshzxe, so that the "AKE" string means all the events.
-#
-#  The "notify-keyspace-events" takes as argument a string that is composed
-#  of zero or multiple characters. The empty string means that notifications
-#  are disabled.
-#
-#  Example: to enable list and generic events, from the point of view of the
-#           event name, use:
-#
-#  notify-keyspace-events Elg
-#
-#  Example 2: to get the stream of the expired keys subscribing to channel
-#             name __keyevent@0__:expired use:
-#
-#  notify-keyspace-events Ex
-#
-#  By default all notifications are disabled because most users don't need
-#  this feature and the feature has some overhead. Note that if you don't
-#  specify at least one of K or E, no events will be delivered.
-notify-keyspace-events Ex
-
-############################### ADVANCED CONFIG ###############################
-
-# Hashes are encoded using a memory efficient data structure when they have a
-# small number of entries, and the biggest entry does not exceed a given
-# threshold. These thresholds can be configured using the following directives.
-hash-max-ziplist-entries 512
-hash-max-ziplist-value 64
-
-# Similarly to hashes, small lists are also encoded in a special way in order
-# to save a lot of space. The special representation is only used when
-# you are under the following limits:
-list-max-ziplist-entries 512
-list-max-ziplist-value 64
-
-# Sets have a special encoding in just one case: when a set is composed
-# of just strings that happen to be integers in radix 10 in the range
-# of 64 bit signed integers.
-# The following configuration setting sets the limit in the size of the
-# set in order to use this special memory saving encoding.
-set-max-intset-entries 512
-
-# Similarly to hashes and lists, sorted sets are also specially encoded in
-# order to save a lot of space. This encoding is only used when the length and
-# elements of a sorted set are below the following limits:
-zset-max-ziplist-entries 128
-zset-max-ziplist-value 64
-
-# HyperLogLog sparse representation bytes limit. The limit includes the
-# 16 bytes header. When an HyperLogLog using the sparse representation crosses
-# this limit, it is converted into the dense representation.
-#
-# A value greater than 16000 is totally useless, since at that point the
-# dense representation is more memory efficient.
-#
-# The suggested value is ~ 3000 in order to have the benefits of
-# the space efficient encoding without slowing down too much PFADD,
-# which is O(N) with the sparse encoding. The value can be raised to
-# ~ 10000 when CPU is not a concern, but space is, and the data set is
-# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
-hll-sparse-max-bytes 3000
-
-# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
-# order to help rehashing the main Redis hash table (the one mapping top-level
-# keys to values). The hash table implementation Redis uses (see dict.c)
-# performs a lazy rehashing: the more operation you run into a hash table
-# that is rehashing, the more rehashing "steps" are performed, so if the
-# server is idle the rehashing is never complete and some more memory is used
-# by the hash table.
-#
-# The default is to use this millisecond 10 times every second in order to
-# actively rehash the main dictionaries, freeing memory when possible.
-#
-# If unsure:
-# use "activerehashing no" if you have hard latency requirements and it is
-# not a good thing in your environment that Redis can reply from time to time
-# to queries with 2 milliseconds delay.
-#
-# use "activerehashing yes" if you don't have such hard requirements but
-# want to free memory asap when possible.
-activerehashing yes
-
-# The client output buffer limits can be used to force disconnection of clients
-# that are not reading data from the server fast enough for some reason (a
-# common reason is that a Pub/Sub client can't consume messages as fast as the
-# publisher can produce them).
-#
-# The limit can be set differently for the three different classes of clients:
-#
-# normal -> normal clients including MONITOR clients
-# slave  -> slave clients
-# pubsub -> clients subscribed to at least one pubsub channel or pattern
-#
-# The syntax of every client-output-buffer-limit directive is the following:
-#
-# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
-#
-# A client is immediately disconnected once the hard limit is reached, or if
-# the soft limit is reached and remains reached for the specified number of
-# seconds (continuously).
-# So for instance if the hard limit is 32 megabytes and the soft limit is
-# 16 megabytes / 10 seconds, the client will get disconnected immediately
-# if the size of the output buffers reach 32 megabytes, but will also get
-# disconnected if the client reaches 16 megabytes and continuously overcomes
-# the limit for 10 seconds.
-#
-# By default normal clients are not limited because they don't receive data
-# without asking (in a push way), but just after a request, so only
-# asynchronous clients may create a scenario where data is requested faster
-# than it can read.
-#
-# Instead there is a default limit for pubsub and slave clients, since
-# subscribers and slaves receive data in a push fashion.
-#
-# Both the hard or the soft limit can be disabled by setting them to zero.
-client-output-buffer-limit normal 0 0 0
-client-output-buffer-limit slave 256mb 64mb 60
-client-output-buffer-limit pubsub 32mb 8mb 60
-
-# Redis calls an internal function to perform many background tasks, like
-# closing connections of clients in timeout, purging expired keys that are
-# never requested, and so forth.
-#
-# Not all tasks are performed with the same frequency, but Redis checks for
-# tasks to perform according to the specified "hz" value.
-#
-# By default "hz" is set to 10. Raising the value will use more CPU when
-# Redis is idle, but at the same time will make Redis more responsive when
-# there are many keys expiring at the same time, and timeouts may be
-# handled with more precision.
-#
-# The range is between 1 and 500, however a value over 100 is usually not
-# a good idea. Most users should use the default of 10 and raise this up to
-# 100 only in environments where very low latency is required.
-hz 10
-
-# When a child rewrites the AOF file, if the following option is enabled
-# the file will be fsync-ed every 32 MB of data generated. This is useful
-# in order to commit the file to the disk more incrementally and avoid
-# big latency spikes.
-aof-rewrite-incremental-fsync yes

+ 0 - 47
docker/compose/stanmac/master-cron/docker-compose.yml

@@ -1,47 +0,0 @@
-version: "3.7"
-
-services:
-  crontabsrv:
-      image: php-zts-debug:7.3.18
-      volumes:
-        - ../../../../:/var/www/html
-        - /Volumes/Transcend/upload:/var/www/html/data/upload
-        - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-        - ../conf/etc/localtime:/etc/localtime:ro
-        - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-        - ../conf/crontab/root:/var/spool/cron/crontabs/root
-      container_name: "panda-crontab"
-      command: [crond,"-f"]
-
-  cronsec:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-    container_name: "panda-cronsec"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','second_queue']
-
-  accedit:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-    container_name: "panda-accedit"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','account_edit']
-
-  crontask:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-    container_name: "panda-task"
-    command: [php,"/var/www/html/crontab/index.php",'minutes','task']

+ 0 - 2
docker/compose/stanmac/rmcontainer.sh

@@ -1,2 +0,0 @@
-docker container stop $(docker container ls -aq)
-docker container rm $(docker container ls -aq)

+ 0 - 64
docker/compose/stanmac/stat/docker-compose.yml

@@ -1,64 +0,0 @@
-version: "3.7"
-
-services:
-  flasksrv:
-    image: pycpu:3.7.10
-    ports:
-      - "5000:5000"
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-flask"
-    command: ['python','app.py']
-
-  readersrv:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-reader"
-    command: ['python','reader.py']
-
-  mchreadersrv:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-mchreader"
-    command: ['python','mchreader.py']
-
-  speedreader:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-speedreader"
-    command: ['python','speed_reader.py']
-
-  ratiosrv:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-ratio"
-    command: ['python','ratio.py','-h', '192.168.1.220', '-p', '6379']
-
-  mratiosrv:
-    image: pycpu:3.7.10
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../../../../:/var/www/html
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - /Users/stanley-king/work/PHPProject/stdata:/var/www/html/data/stdata
-    container_name: "panda-mratio"
-    command: ['python','mratio.py','-h', '192.168.1.220', '-p', '6379']

+ 0 - 13
docker/compose/stanmac/storage/docker-compose.yml

@@ -1,13 +0,0 @@
-version: "3.7"
-
-services:
-  redisrv:
-    image: redis:alpine
-    ports:
-      - "6379:6379"
-    volumes:
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/redis/6379.conf:/etc/redis/redis.conf
-      - ../conf/redis:/var/redis
-    container_name: "panda-redis"
-    command: [redis-server,"/etc/redis/redis.conf"]

+ 0 - 13
docker/compose/stanmac/vendor/docker-compose.yml

@@ -1,13 +0,0 @@
-version: "3.7"
-
-services:
-  token_refresh:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-    container_name: "panda-token-refresh"
-    command: [php,"/var/www/html/crontab/index.php",'vendor','token_refresh']

+ 0 - 24
docker/compose/stanmac/worker/docker-compose.yml

@@ -1,24 +0,0 @@
-version: "3.7"
-
-services:
-  cordsrv:
-    image: php-swool-redis:latest
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-swoole-debug.ini:/usr/local/etc/php/php.ini
-    container_name: "panda-codispatcher"
-    command: [php,"/var/www/html/rdispatcher/codispatcher.php","1"]
-
-  queuesrv:
-    image: php-zts-debug:7.3.18
-    volumes:
-      - ../../../../:/var/www/html
-      - /Volumes/Transcend/upload:/var/www/html/data/upload
-      - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
-      - ../conf/etc/localtime:/etc/localtime:ro
-      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
-    container_name: "panda-queue"
-    command: [php,"/var/www/html/queue/index.php", "queue", "index"]

+ 9 - 0
docker/compose/template/ReadMe.MD

@@ -0,0 +1,9 @@
+## macc
+对应模块mobile,老版本的处理充值。
+
+## racc
+对应模块racc,新的独立版本的处理充值。
+
+
+# Port映射表 
+acc-> 8100:80

+ 51 - 0
docker/compose/template/admin/docker-compose.yml

@@ -0,0 +1,51 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  nginx:
+    image: nginx:alpine
+    ports:
+      - ${ADMINGINX_PORT}:80
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/nginx/admin.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-adnginx"
+    command: [ nginx,'-g','daemon off;' ]
+    extra_hosts:
+      - docker.hostip:172.17.0.1
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  mch:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: '${CONTAINER_PREFIX}-admch'
+    command: [ spwan-start,"/mchsrv/mchsrv_run.php","8" ]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  web:
+    image: php-fpm:alpine
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ../conf/php-fpm/php-fpm.conf:/usr/local/etc/php-fpm.conf
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: '${CONTAINER_PREFIX}-adweb'
+    command: [php-fpm]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 23 - 0
docker/compose/template/cli/docker-compose.yml

@@ -0,0 +1,23 @@
+version: "3.9"
+
+services:
+  phpcli:
+    image: php-zts:7.3.18
+    volumes:
+      - /mnt/xyzshop:/var/www/html
+      - /mnt/xyzshop/docker/compose/homecuda/conf/etc/localtime:/etc/localtime:ro
+      - /mnt/xyzshop/docker/compose/homecuda/conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - /mnt/upload:/var/www/html/data/upload
+      - /mnt/shoplog:/var/www/html/data/log
+    container_name: "panda-php"
+
+  phpswoole:
+    image: php-swool-redis:latest
+    volumes:
+      - ../../../../:/var/www/html
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-swoole.ini:/usr/local/etc/php/php.ini
+      - /mnt/upload:/var/www/html/data/upload
+      - /mnt/shoplog:/var/www/html/data/log
+      - ../conf/php/vender-init:/usr/local/bin/vender-init
+    container_name: "panda-swoole"

+ 24 - 0
docker/compose/template/compose.env

@@ -0,0 +1,24 @@
+#Mobile接入层Nigix端口
+MACCNGINX_PORT=8100
+#ReadMine Nigix 端口
+RMINE_NGINX_PORT=8080
+
+#racc Refill接入层Nginx端口
+RACCNGINX_PORT=80
+#Admin后台Nginx端口
+ADMINGINX_PORT=80
+
+#主站上传文件路径
+SHOP_UPLOAD_PATH=/nfs/mhupload
+#日志路径
+SHOP_LOG_PATH=/mnt/mhlog
+#机构后台页面路径
+MERCHANT_PATH=/nfs/mhmerchant
+#docker 网络名称
+DOCKER_NET_NAME=mh_network
+#docker 容器名称前缀
+CONTAINER_PREFIX=mh
+#商城部署到容器的根目录
+SHOP_ROOT_PATH=/var/www/html
+#系统REDIS端口
+SHOP_REDIS_PORT=6379

+ 1 - 0
docker/compose/template/conf/crontab/master_root

@@ -0,0 +1 @@
+*    *   *   *   *   php /var/www/html/crontab/index.php minutes index

+ 17 - 0
docker/compose/template/conf/crontab/root

@@ -0,0 +1,17 @@
+# do daily/weekly/monthly maintenance
+# min	hour	day	month	weekday	command
+#*/15	*	*	*	*	run-parts /etc/periodic/15min
+#0	*	*	*	*	run-parts /etc/periodic/hourly
+#0	2	*	*	*	run-parts /etc/periodic/daily
+#0	3	*	*	6	run-parts /etc/periodic/weekly
+#0	5	1	*	*	run-parts /etc/periodic/monthly
+#0   3   *   *   *   php /var/www/html/crontab/index.php date index
+#0   9   *   *   *   php /var/www/html/crontab/index.php date nine_clock
+#0   10  *   *   *   php /var/www/html/crontab/index.php date ten_clock
+*    *   *   *   *   php /var/www/html/crontab/index.php minutes index
+#0   10-20/1 *   *   *   php /var/www/html/crontab/index.php hour index
+#0   3   1   */1 *   php /var/www/html/crontab/index.php month index
+*    *   *   *   *   echo "test" >> /var/test.log
+
+#0   1   *   *   *   php /var/www/html/crontab/index.php date _order_stats
+

+ 5 - 0
docker/compose/template/conf/crontab/slave_root

@@ -0,0 +1,5 @@
+*/1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance
+0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
+0   23   *   *   *   php /var/www/html/crontab/index.php date merchant_nightime
+0   7    *   *   *   php /var/www/html/crontab/index.php date merchant_daytime
+0   0    *   *   *   php /var/www/html/crontab/index.php date merchant_available

docker/compose/stanmac/conf/etc/localtime → docker/compose/template/conf/etc/localtime


+ 124 - 0
docker/compose/template/conf/nginx/admin.conf

@@ -0,0 +1,124 @@
+user nginx;
+worker_processes  16;
+error_log   /var/www/html/data/log/anginx.log  debug;
+worker_rlimit_nofile 10240;
+
+events {
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+
+    underscores_in_headers on;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
+
+    sendfile            on;
+    keepalive_timeout   300;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server 
+    {
+    	listen       80;
+        set  $folder_name /var/www/html;
+        server_name 47.92.239.240;
+        root $folder_name;
+        index index.html index.php; 
+
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
+
+        charset utf-8;
+
+        location /data/log {
+            deny all;
+            return 403;
+        }
+        location / {
+            index  index.html index.htm index.php;
+        }
+
+        location ~ /mobile {
+            deny all;
+            return 403;
+        }
+
+        location ~ /racc {
+            deny all;
+            return 403;
+        }
+
+        location /mshop {
+            root $folder_name;
+            autoindex on;        
+            index  index.html index.htm index.php;
+	        try_files $uri $uri/ /mshop/index.html;
+        }
+
+        location /plot {
+            root $folder_name;
+            proxy_pass         http://docker.hostip:5000;
+            proxy_redirect     off;
+
+            proxy_set_header   Host                 $host;
+            proxy_set_header   X-Real-IP            $remote_addr;
+            proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
+            proxy_set_header   X-Forwarded-Proto    $scheme;
+        }
+
+        location /merchant {
+            root $folder_name;
+            autoindex on;
+            index  index.html index.htm index.php;
+            try_files $uri $uri/ /merchant/index.html;
+        }
+
+        location ~ /mchsrv/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   mch:9102;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_param SIGN $http_sign;
+            include fastcgi_params;
+        }
+
+        location ~ \.php$ {
+	        add_header Cache-Control no-store;
+            root           $folder_name;
+            fastcgi_pass   web:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_buffer_size  1024K;
+            fastcgi_buffers      32 1024K;
+            proxy_buffer_size  128k;     #设置缓冲区的大小和数量
+            proxy_buffers 100  128k;     #
+            proxy_read_timeout 900s;
+            proxy_send_timeout 900s;
+            fastcgi_read_timeout 900;
+            fastcgi_send_timeout 900;
+            keepalive_timeout    900;
+
+            include        fastcgi_params;
+        }
+    }
+}

+ 67 - 0
docker/compose/template/conf/nginx/macc.conf

@@ -0,0 +1,67 @@
+user nginx;
+worker_processes  16;
+error_log   /var/www/html/data/log/mnginx.log info;
+worker_rlimit_nofile 10240;
+
+events {
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+
+    underscores_in_headers on;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
+
+    sendfile            on;
+    keepalive_timeout   300;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server 
+    {
+    	listen       80;
+        set  $folder_name /var/www/html;
+        server_name 47.92.238.126;
+        root $folder_name;
+        index index.html index.php; 
+
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
+
+        charset utf-8;
+
+        location ~ /mobile/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   macc:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_param  SIGN $http_sign;
+            include fastcgi_params;
+        }
+
+        location / {
+            deny all;
+            return 403;
+        }
+    }
+}

+ 44 - 27
docker/compose/stanmac/conf/nginx/nginx.conf

@@ -1,24 +1,27 @@
-
 user nginx;
-worker_processes  1;
+worker_processes  16;
 error_log   /var/error.log  info;
-worker_rlimit_nofile 1024;
+worker_rlimit_nofile 10240;
 
 events {
-    worker_connections  1024;
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
 }
 
 http 
 {
     include       mime.types;
     default_type  application/octet-stream;
-    fastcgi_buffer_size 32k;
-    fastcgi_buffers 8 32k;
+
     underscores_in_headers on;
-    client_max_body_size 1024M;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
 
     sendfile            on;
-    keepalive_timeout   65;
+    keepalive_timeout   300;
 
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                       '$status $body_bytes_sent "$http_referer" '
@@ -28,16 +31,22 @@ http
     {
     	listen       80;
         set  $folder_name /var/www/html;
-        server_name 192.168.1.220;
+        server_name 47.92.238.126;
         root $folder_name;
         index index.html index.php; 
-    	client_max_body_size 100m;
+
     	proxy_connect_timeout 500s;
         proxy_read_timeout 500s;
         proxy_send_timeout 500s;
+
         fastcgi_connect_timeout 75;
         fastcgi_read_timeout 600;   
-        fastcgi_send_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
 
         charset utf-8;
         
@@ -63,7 +72,7 @@ http
 
         location /plot {
             root $folder_name;
-            proxy_pass         http://host.docker.internal:5000;
+            proxy_pass         http://docker.hostip:5000;
             proxy_redirect     off;
 
             proxy_set_header   Host                 $host;
@@ -72,12 +81,19 @@ http
             proxy_set_header   X-Forwarded-Proto    $scheme;
         }
 
+        location /merchant {
+            root $folder_name;
+            autoindex on;
+            index  index.html index.htm index.php;
+            try_files $uri $uri/ /merchant/index.html;
+        }
+
         location ~ /mobile/[/\w]+\.php$ {
             root           $folder_name;
-            fastcgi_pass   host.docker.internal:9100;
+            fastcgi_pass   mobile:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
-            fastcgi_param SIGN $http_sign;
+            fastcgi_param  SIGN $http_sign;
             include fastcgi_params;
         }
 
@@ -87,37 +103,38 @@ http
 
         location ~ /racc/[/\w]+\.php$ {
             root           $folder_name;
-            fastcgi_pass   host.docker.internal:9101;
+            fastcgi_pass   docker.hostip:9101;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
-            fastcgi_param SIGN $http_sign;
+            fastcgi_param  SIGN $http_sign;
             include fastcgi_params;
         }
 
         location ~ /mchsrv/[/\w]+\.php$ {
             root           $folder_name;
-            fastcgi_pass   host.docker.internal:9102;
+            fastcgi_pass   docker.hostip:9102;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
             fastcgi_param SIGN $http_sign;
             include fastcgi_params;
         }
 
-        location ~ /admin/[/\w]+\.php$ {
-            add_header Cache-Control no-store;
-            root           $folder_name;
-            fastcgi_pass   host.docker.internal:9000;
-            fastcgi_index  index.php;
-            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
-            include        fastcgi_params;
-        }
-
         location ~ \.php$ {
 	        add_header Cache-Control no-store;
             root           $folder_name;
-            fastcgi_pass   host.docker.internal:9000;
+            fastcgi_pass   docker.hostip:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_buffer_size  1024K;
+            fastcgi_buffers      32 1024K;
+            proxy_buffer_size  128k;     #设置缓冲区的大小和数量
+            proxy_buffers 100  128k;     #
+            proxy_read_timeout 900s;
+            proxy_send_timeout 900s;
+            fastcgi_read_timeout 900;
+            fastcgi_send_timeout 900;
+            keepalive_timeout    900;
+
             include        fastcgi_params;
         }
     }

+ 68 - 0
docker/compose/template/conf/nginx/racc.conf

@@ -0,0 +1,68 @@
+user nginx;
+worker_processes  16;
+error_log   /var/www/html/data/log/rnginx.log debug;
+worker_rlimit_nofile 10240;
+
+events {
+    worker_connections  8192;
+    multi_accept on;
+    use epoll;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+
+    underscores_in_headers on;
+    client_max_body_size 32M;
+    client_body_buffer_size 1024K;
+
+    tcp_nopush on;
+
+    sendfile            on;
+    keepalive_timeout   300;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server 
+    {
+    	listen       80;
+        set  $folder_name /var/www/html;
+        server_name 47.92.238.126;
+        root $folder_name;
+        index index.html index.php; 
+
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;   
+        fastcgi_send_timeout 600;
+        fastcgi_buffer_size  32K;
+        fastcgi_buffers      32 32K;
+
+        set_real_ip_from 100.64.0.0/10;
+        real_ip_header X-Forwarded-For;
+
+        charset utf-8;
+
+
+        location ~ /racc/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   racc:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            fastcgi_param  SIGN $http_sign;
+            include fastcgi_params;
+        }
+
+        location / {
+            deny all;
+            return 403;
+        }
+    }
+}

+ 4 - 1
docker/compose/stanmac/conf/php-fpm/php-fpm.conf

@@ -140,4 +140,7 @@
 ; Relative path can also be used. They will be prefixed by:
 ;  - the global prefix if it's been set (-p argument)
 ;  - /usr/local otherwise
-include=etc/php-fpm.d/*.conf
+include=etc/php-fpm.d/*.conf
+
+pm.max_children = 50
+pm.max_spare_servers = 10

+ 6 - 13
docker/compose/stanmac/conf/php/php.ini

@@ -879,7 +879,9 @@ default_socket_timeout = 60
 ; ... or with a path:
 ;
 ;   extension=/path/to/extension/msql.so
-;
+
+extension=swoole.so
+
 ; If you only provide the name of the extension, PHP will look for it in its
 ; default extension directory.
 ;
@@ -924,6 +926,7 @@ default_socket_timeout = 60
 ;extension=php_tidy.dll
 ;extension=php_xmlrpc.dll
 ;extension=php_xsl.dll
+
 ;;;;;;;;;;;;;;;;;;;
 ; Module Settings ;
 ;;;;;;;;;;;;;;;;;;;
@@ -1324,7 +1327,7 @@ bcmath.scale = 0
 ; http://php.net/session.save-handler
 ;session.save_handler = file
 session.save_handler = redis
-session.save_path = tcp://host.docker.internal:6379
+session.save_path = tcp://172.22.67.133:6379
 
 ; Argument passed to save_handler.  In the case of files, this is the path
 ; where data files are stored. Note: Windows users have to change this
@@ -1938,14 +1941,4 @@ ldap.max_links = -1
 ; tab-width: 4
 ; End:
 
-;output_buffering = On
-;
-;[xdebug]
-;xdebug.default_enable=1
-;xdebug.remote_enable=1
-;xdebug.remote_handler=dbgp
-;xdebug.remote_host=host.docker.internal
-;xdebug.remote_port=9300
-;xdebug.remote_mode = "req"
-;xdebug.remote_autostart=1
-;xdebug.idekey=PHPSTORM
+output_buffering = On

+ 3 - 12
docker/compose/stanmac/conf/php/php-debug.ini

@@ -924,6 +924,7 @@ default_socket_timeout = 60
 ;extension=php_tidy.dll
 ;extension=php_xmlrpc.dll
 ;extension=php_xsl.dll
+
 ;;;;;;;;;;;;;;;;;;;
 ; Module Settings ;
 ;;;;;;;;;;;;;;;;;;;
@@ -1324,7 +1325,7 @@ bcmath.scale = 0
 ; http://php.net/session.save-handler
 ;session.save_handler = file
 session.save_handler = redis
-session.save_path = tcp://host.docker.internal:6379
+session.save_path = tcp://172.22.67.133:6379
 
 ; Argument passed to save_handler.  In the case of files, this is the path
 ; where data files are stored. Note: Windows users have to change this
@@ -1938,14 +1939,4 @@ ldap.max_links = -1
 ; tab-width: 4
 ; End:
 
-output_buffering = On
-
-[xdebug]
-xdebug.default_enable=1
-xdebug.remote_enable=1
-xdebug.remote_handler=dbgp
-xdebug.remote_host=host.docker.internal
-xdebug.remote_port=9300
-xdebug.remote_mode="req"
-xdebug.remote_autostart=1
-xdebug.idekey=PHPSTORM
+output_buffering = On

+ 8 - 0
docker/compose/template/conf/php/spwan-start

@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+cmd="php /var/www/html$1"
+spawn-fcgi -a 0.0.0.0 -p 9000 -F $2 -f "$cmd"
+
+trap 'echo "Container is exiting"; exit' EXIT
+tail -f /dev/null

+ 3 - 0
docker/compose/template/conf/php/vender-init

@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /var/wwww/html
+php ./composer.phar require phpoffice/phpspreadsheet

docker/compose/stanmac/conf/redis/6379.conf → docker/compose/template/conf/redis/6379.conf


+ 11 - 0
docker/compose/template/conf/redis/cluster.conf

@@ -0,0 +1,11 @@
+port 6379
+bind 0.0.0.0
+protected-mode no
+daemonize no
+appendonly no
+cluster-enabled yes
+cluster-config-file nodes.conf
+cluster-node-timeout 15000
+cluster-announce-ip 192.168.3.104
+# cluster-announce-port 6379
+# cluster-announce-bus-port 16379

+ 10 - 0
docker/compose/template/cpenv

@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# shellcheck disable=SC2039
+dest_dirs=("mh-macc" "mh-admin" "mh-cli" "mh-master" "mh-racc" "mh-slave" "mh-worker")
+src_file=".env"
+
+for dir in "${dest_dirs[@]}"; do
+    cp "$src_file" "$dir/"
+    echo "$dir/"
+done

+ 3 - 0
docker/compose/template/docker-compose.networks.yml

@@ -0,0 +1,3 @@
+networks:
+  homecuda_network:
+    external: true

+ 35 - 0
docker/compose/template/macc/docker-compose.yml

@@ -0,0 +1,35 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  nginx:
+    image: nginx:alpine
+    ports:
+      - ${MACCNGINX_PORT}:80
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/nginx/macc.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-mnginx"
+    command: [nginx,'-g','daemon off;']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  macc:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+    container_name: "${CONTAINER_PREFIX}-macc"
+    command: [ spwan-start,"/mobile/mobile_run.php","16" ]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 45 - 0
docker/compose/template/master/docker-compose.yml

@@ -0,0 +1,45 @@
+version: "3.7"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  crontabsrv:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/crontab/master_root:/var/spool/cron/crontabs/root
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-crontab"
+    command: [crond,"-f"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  cronsec:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-cronsec"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','second_queue']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  accedit:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-master-accedit"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','account_edit']
+    networks:
+      - ${DOCKER_NET_NAME}

+ 35 - 0
docker/compose/template/racc/docker-compose.yml

@@ -0,0 +1,35 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  nginx:
+    image: nginx:alpine
+    ports:
+      - ${RACCNGINX_PORT}:80
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/nginx/racc.conf:/etc/nginx/nginx.conf:ro
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${MERCHANT_PATH}:${SHOP_ROOT_PATH}/merchant
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-rnginx"
+    command: [nginx,'-g','daemon off;']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  racc:
+    image: php-zts:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+      - ../conf/php/spwan-start:/usr/local/bin/spwan-start
+    container_name: "${CONTAINER_PREFIX}-racc"
+    command: [ spwan-start,"/racc/racc_run.php","16" ]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 58 - 0
docker/compose/template/slave/docker-compose.yml

@@ -0,0 +1,58 @@
+version: "3.7"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  crontabslave:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ../conf/crontab/slave_root:/var/spool/cron/crontabs/root
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-cron"
+    command: [crond,"-f"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  taska:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-taska"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','task']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  taskb:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-taskb"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','task']
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  statutil:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-slave-stat"
+    command: [php,"${SHOP_ROOT_PATH}/crontab/index.php",'minutes','stat']
+    networks:
+      - ${DOCKER_NET_NAME}

+ 18 - 0
docker/compose/template/storage/docker-compose.yml

@@ -0,0 +1,18 @@
+version: "3.7"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  redisrv:
+    image: redis:alpine
+    ports:
+      - ${SHOP_REDIS_PORT}:6379
+    volumes:
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/redis/6379.conf:/etc/redis/redis.conf
+      - /mnt/redisdata:/data
+    container_name: "${CONTAINER_PREFIX}-redis"
+    command: [redis-server,"/etc/redis/redis.conf"]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 44 - 0
docker/compose/template/worker/docker-compose.yml

@@ -0,0 +1,44 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+services:
+  cordsrv:
+    image: php-swool-redis:latest
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-swoole-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wcodispatcher"
+    command: [php,"${SHOP_ROOT_PATH}/rdispatcher/codispatcher.php","1"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  queuesrv:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wqueue"
+    command: [php,"${SHOP_ROOT_PATH}/queue/index.php", "queue", "index"]
+    networks:
+      - ${DOCKER_NET_NAME}
+
+  searcher:
+    image: php-zts-debug:7.3.18
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-wsearcher"
+    command: [php, "${SHOP_ROOT_PATH}/searcher.php"]
+    networks:
+      - ${DOCKER_NET_NAME}

+ 3 - 0
docker/compose/template/worker/restart_cordsrv.sh

@@ -0,0 +1,3 @@
+docker-compose stop -t 1200 cordsrv
+docker-compose up -d cordsrv
+docker-compose ps

+ 3 - 0
docker/compose/template/worker/stop_all.sh

@@ -0,0 +1,3 @@
+docker-compose stop -t 1200 cordsrv
+docker-compose down
+docker-compose ps