Skip to content

服务端环境配置

更新时间:2023-10-28

软件环境

说明

默认服务器已经安装docker和doker-compose

必装:Rabbitmq消息队列环境 Redis缓存数据库环境

完整版:Mysql关系型数据库

简易版:无

Rabbitmq安装

使用 docker-compose 安装rabbitmq环境,建议使用版本为3.12.10

yaml
version: "3"

services:
  rabbitmq:
    container_name: rabbitmq
    hostname: rabbitmq
    image: rabbitmq:3-management
    ports:
      - ${RABBITMQ_PORT}:5672
      - ${RABBITMQ_WEB_PORT}:15672
      - "4369:4369"
      - "25672:25672"
    restart: always
    environment:
      TZ: Asia/Shanghai
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: 1qaz@WSX
    volumes:
      - ${RABBITMQ_DATA}:/var/lib/rabbitmq
      - ${RABBITMQ_CONF}:/etc/rabbitmq/rabbitmq.conf
      - ${RABBITMQ_COOKIE}:/var/lib/rabbitmq/.erlang.cookie
      - ${RABBITMQ_DELAY_PLUGIN}:/plugins/rabbitmq_delayed_message_exchange-3.11.1.ez
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge
version: "3"

services:
  rabbitmq:
    container_name: rabbitmq
    hostname: rabbitmq
    image: rabbitmq:3-management
    ports:
      - ${RABBITMQ_PORT}:5672
      - ${RABBITMQ_WEB_PORT}:15672
      - "4369:4369"
      - "25672:25672"
    restart: always
    environment:
      TZ: Asia/Shanghai
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: 1qaz@WSX
    volumes:
      - ${RABBITMQ_DATA}:/var/lib/rabbitmq
      - ${RABBITMQ_CONF}:/etc/rabbitmq/rabbitmq.conf
      - ${RABBITMQ_COOKIE}:/var/lib/rabbitmq/.erlang.cookie
      - ${RABBITMQ_DELAY_PLUGIN}:/plugins/rabbitmq_delayed_message_exchange-3.11.1.ez
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge

注意

Rabbitmq一定要安装rabbitmq_delayed_message_exchange延迟消息插件

说明

脚本中变量解释说明:

变量 RABBITMQ_PORT 为映射的服务器端口

变量 RABBITMQ_WEB_PORT 为映射的网页端口

变量 RABBITMQ_DATA 为映射的数据保存的路径地址

变量 RABBITMQ_CONF 为映射配置文件

变量 RABBITMQ_COOKIE 为映射cookie值,用于分布式部署时候使用

rabbitmq.conf配置示例
yaml
loopback_users.guest = false
listeners.tcp.default = 5672
management.tcp.port = 15672
default_vhost = /
default_user = admin
default_pass = admin
default_user_tags.administrator = true
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*
loopback_users.guest = false
listeners.tcp.default = 5672
management.tcp.port = 15672
default_vhost = /
default_user = admin
default_pass = admin
default_user_tags.administrator = true
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*

Mysql安装

使用 docker-compose 安装mysql环境

yaml
version: "3"

services:
  mysql:
    container_name: mysql
    hostname: mysql
    image: mysql:8
    ports:
      - ${MYSQL_PORT}:3306
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_ROOT_HOST: '%'
      MYSQL_USER: ${MYSQL_USERNAME}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - ${MYSQL_DATA}:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-time-zone='+8:00' --max_connections=1000 --innodb_lock_wait_timeout=500
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge
version: "3"

services:
  mysql:
    container_name: mysql
    hostname: mysql
    image: mysql:8
    ports:
      - ${MYSQL_PORT}:3306
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_ROOT_HOST: '%'
      MYSQL_USER: ${MYSQL_USERNAME}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - ${MYSQL_DATA}:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-time-zone='+8:00' --max_connections=1000 --innodb_lock_wait_timeout=500
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge

说明

脚本中变量解释说明:

变量 MYSQL_PORT 为映射的服务器端口

变量 MYSQL_ROOT_PASSWORD 为映射的root用户的密码

变量 MYSQL_USERNAME 为映射的新建的用户名

变量 MYSQL_PASSWORD 为映射的新建的用户的密码

变量 MYSQL_DATA 为映射的数据保存的文件夹路径

数据库的创建,以下说明只针对完整版服务端配置

mysql脚本安装好之后,创建一个名为nav_resolve的数据库(可以自定义名字,修改数据库的连接配置即可),后面服务端镜像安装需要依赖此数据库。

Redis安装

使用 docker-compose 安装redis环境

yaml
version: "3"

services:
    redis:
    container_name: redis
    hostname: redis
    image: redis:5
    ports:
      - ${REDIS_PORT}:6379
    restart: always
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ${REDIS_DATA}:/data
      - ${REDIS_CONFIG}:/etc/redis.conf
    command: /usr/local/bin/redis-server /etc/redis.conf
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge
version: "3"

services:
    redis:
    container_name: redis
    hostname: redis
    image: redis:5
    ports:
      - ${REDIS_PORT}:6379
    restart: always
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ${REDIS_DATA}:/data
      - ${REDIS_CONFIG}:/etc/redis.conf
    command: /usr/local/bin/redis-server /etc/redis.conf
    networks:
      - iot-net

networks:
  iot-net:
    driver: bridge

说明

脚本中变量解释说明:

变量 REDIS_PORT 为映射的服务器端口

变量 REDIS_DATA 为映射的数据保存的文件夹路径

变量 REDIS_CONFIG 为映射的配置文件的绝对路径

redis.conf配置示例
yaml
port 6379
requirepass 1qaz@WSX
appendonly yes
notify-keyspace-events "Ex"
port 6379
requirepass 1qaz@WSX
appendonly yes
notify-keyspace-events "Ex"

Power By Navfirst And Released Under The MIT License.