某网站优化方案移动互联网技术学什么
web/
2025/9/29 6:41:38/
文章来源:
某网站优化方案,移动互联网技术学什么,电子商务平台建设与运营技术,网站建设上qq图标去除目录 安装在线安装离线安装 配置mysql5.7bitnami/mysql8.3redisweb前后台分离部署前端https(SSL)配置nginx动态传参资源限制#xff1a;内存、cpunacossentinelgateway 问题汇总iptables No chain/target/match by that namedocker-compose.yml修改mysql密码#xff0c;重启后… 目录 安装在线安装离线安装 配置mysql5.7bitnami/mysql8.3redisweb前后台分离部署前端https(SSL)配置nginx动态传参资源限制内存、cpunacossentinelgateway 问题汇总iptables No chain/target/match by that namedocker-compose.yml修改mysql密码重启后不生效 安装 前提注意先安装docker 在线安装
# 下载某版本docker-compose文件并改名docker-compose移动至/usr/local/bin
curl -L https://github.com/docker/compose/releases/download/1.28.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 授权docker-compose可执行
chmod x /usr/local/bin/docker-compose
# 查看是否安装成功
docker-compose -v离线安装
需要先下载好docker-compose文件
# 授执行权限
chmod x docker-compose
# 移动至/usr/bin
cp docker-compose /usr/bin
# 查看是否安装成功
docker-compose -V配置
mysql5.7
!!!注意需要给/docker_mysql/data目录授读写权限 例如chmod 777 dataversion为2和3时都可以
version: 3
services:mysql57:image: mysql:5.7container_name: mysql5.7restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456TZ: Asia/ShanghaiMYSQL_USER: testMYSQL_PASSWORD: Test123456# 指定启动命令和配置参数# command: --character-set-serverutf8mb4 --collation-serverutf8mb4_general_ci --explicit_defaults_for_timestamptrue --lower_case_table_names1 --max_allowed_packet128M --sql-modeSTRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZEROports:- 3307:3306volumes:- ./docker_mysql/log:/var/log/mysql- ./docker_mysql/data:/var/lib/mysql- ./docker_mysql/conf:/etc/mysql/conf.dbitnami/mysql8.3 有一次离线部署docker官方mysql镜像docker load无法成功改为bitnami版才成功 !!!注意需要给/docker_mysql/data目录授读写权限 例如chmod 777 databitnami版配置version必须为2时以下配置才会生效version为3时容器虽然运行成功但密码等配置都无法生效官网文档
version: 2
services:mysql:image: bitnami/mysql:8.3container_name: mysql8restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD123456- MYSQL_USERprism- MYSQL_PASSWORD123456- MYSQL_DATABASEmydatabaseports:- 3307:3306volumes:- ./docker_mysql/data:/bitnami/mysql/dataredis
/docker_redis目录下放入配置文件redis.conf#开启远程可连接
#bind 127.0.0.1
#自定义密码
requirepass 123456
#指定 Redis 监听端口(默认:6379)
port 6379
#客户端闲置指定时长后关闭连接(单位:秒。0:关闭该功能)
timeout 0
#是否压缩数据存储(默认:yes。Redis采用LZ 压缩如果为了节省 CPU 时间可以关闭该选项但会导致数据库文件变的巨大)
rdbcompression yes
#指定本地数据文件名(默认:dump.rdb)
dbfilename dump.rdb
#指定本地数据文件存放目录
dir /data
#指定日志文件位置(如果是相对路径redis会将日志存放到指定的dir目录下)
logfile redis.log启动后可进入容器通过redis-cli测试例如 auth 密码测试自定义密码是否生效!!!注意如果是先启动的话会自动生成映射目录其中redis.conf文件会被映射成为目录而不是文件需要修改后重启
redis:image: redis:6.2.6container_name: redisrestart: alwaysvolumes:- ./docker_redis/redis.conf:/etc/redis/redis.conf- ./docker_redis/data:/data- ./docker_redis/logs:/logscommand: redis-server /etc/redis/redis.confports:- 6380:6379web前后台分离部署 后端镜像web-server基于openjdk:8-alpine镜像制成前端镜像web-front基于nginx镜像制成 version为2时需要增加links配置才能将后端服务web-server传入前端服务web-front内部的nginx配置用于反向代理为3时不需要links配置即可实现若后端程序连接的mysql也是通过该docker-compose部署的则可在配置里不使用ip端口而是直接使用服务名也可以不在同一个docker-compose.yml配置但要确保在同一网络例如yml文件放在同一个目录下
version: 3
services:web-server:image: 127.0.0.1:5000/web-servercontainer_name: web-serverrestart: alwaysenvironment:- spring.datasource.urljdbc:mysql://【mysql服务名】/api?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneCTT# - spring.datasource.urljdbc:mysql://【ip】:【port】/api?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneCTT- JAVA_OPTS-Dlog4j2.formatMsgNoLookupstrueweb-front:image: 127.0.0.1:5000/web-frontcontainer_name: web-frontrestart: always# links:# - web-serverdepends_on:- web-serverports:- 8080:80前端https(SSL)配置
主要涉及签名证书通过volumes映射具体配置可见【docker-compose】【nginx】内网环境https配置
nginx动态传参
主要借助docker-compose的environment、Dockerfile的envsubst以及nginx配置文件模版实现【docker-compose】【nginx】动态配置
资源限制内存、cpu
使用deploy进行资源限制时version必须为3cpus配置必须使用引号‘’需通过docker-compose --compatibility up -d启动才能生效可通过docker stats --no-stream查看内存及cpu使用情况
version: 3
services:web-server:image: 127.0.0.1:5000/web-servercontainer_name: web-serverrestart: alwaysdeploy:resources:limits:memory: 256Mcpus: 1web-front:image: 127.0.0.1:5000/web-frontcontainer_name: web-frontrestart: alwaysdepends_on:- web-serverports:- 8080:80deploy:resources:limits:memory: 64Mcpus: 0.5nacossentinelgateway
docker-compose可以通过服务名访问服务避免了每次修改ip和端口便于移植
version: 3
networks: #自定义网络myapp为了只有这些服务可以在该网络内相互访问myapp:driver: bridge
services: #将容器抽象成服务nacos: #注册中心官方镜像image: nacos/nacos-server:latestcontainer_name: nacosrestart: alwaysenvironment:MODE: standalonePREFER_HOST_MODE: ipSPRING_DATASOURCE_PLATFORM: mysqlMYSQL_SERVICE_HOST: 【ip地址】#数据库在外部MYSQL_SERVICE_PORT: 3306MYSQL_SERVICE_DB_NAME: nacos_configMYSQL_SERVICE_USER: nacosMYSQL_SERVICE_PASSWORD: Nacos123456# MYSQL_SERVICE_DB_PARAM: characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueallowPublicKeyRetrievaltrueserverTimezoneGMT%2B8volumes:- ./docker_nacos/standalone-logs/:/home/nacos/logsports:- 8848:8848networks:- myappsentinel: #熔断限流官方镜像image: bladex/sentinel-dashboardcontainer_name: sentinel-nacosrestart: alwaysdepends_on:- nacosenvironment:NACOS_SERVER_ADDR: nacos:8848NACOS_USERNAME: nacosNACOS_PASSWORD: nacosNACOS_NAMESPACE: publicNACOS_GROUP_ID: SENTINEL_GROUPports:- 8858:8858networks:- myappgateway: #网关自制镜像image: nacos-gatewaycontainer_name: nacos-gatewayrestart: alwaysdepends_on:- nacosports:- 18890:18890environment:- spring.cloud.nacos.discovery.server-addrnacos:8848- spring.cloud.sentinel.transport.dashboardsentinel:8858networks:- myappauthserver: #认证中心自制镜像image: nacos-authservercontainer_name: nacos-authserverrestart: alwaysdepends_on:- nacosenvironment:- spring.datasource.urljdbc:mysql://【mysql服务名】/oauth?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneCTT- spring.cloud.nacos.discovery.server-addrnacos:8848- spring.cloud.sentinel.transport.dashboardsentinel:8858- JAVA_OPTS-Dlog4j2.formatMsgNoLookupstruenetworks:- myapp问题汇总
iptables No chain/target/match by that name
原因centos7默认防火墙为firewalld而不是iptables,而docker使用iptables来做端口映射所以一旦将firewalld关闭则会报错 解决启动防火墙并一定注意开放平台访问的端口
systemctl start firewalld.service
firewall-cmd --zonepublic --add-port[port]/tcp --permanent
firewall-cmd --reloaddocker-compose.yml修改mysql密码重启后不生效
描述修改后的密码无法连接mysql但旧密码依然可以 问题因为带有旧有登录信息的卷依然在 解决docker volume ls 找到旧卷docker volume rm删除旧卷 注意千万不要移除mysql容器重启虽然密码生效了但是删库所有数据都没了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83754.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!