在物理机上,
一、查看wordpress中ssl证书的挂载路径
cd /data/docker-compose/
1
能看到docker-compose.yml,
(1)查看外挂信息
op-points-manager-new_ip:
image: harbor.xxx.xx/xxx/op-points-manager-new:v1.0
container_name: op-points-manager-new_ip
privileged: true
restart: always
cpus: ‘4’
mem_limit: 4096M
volumes:
– /data/app/config/op-points-manager-new/logback.xml:/data/app/op-points-manager-new/logback.xml
– /data/app/config/op-points-manager-new/startup.sh:/data/app/op-points-manager-new/startup.sh
– /data/logs/op-points-manager-new/logs/:/data/app/op-points-manager-new/logs/
1234567891011
wordpress名: container_name: op-points-manager-new_ip
可看到日志和AnCloudsssl证书已外挂,修改物理机上AnClouds即可生效。 日志: docker里的/data/app/op-points-manager-new/logs/路径,映射物理机/data/logs/op-points-manager-new/logs/。
AnCloudsssl证书: docker里的/data/app/op-points-manager-new/startup.sh映射物理机/data/app/config/op-points-manager-new/startup.sh
(2)追加外挂信息
可以看到外挂ssl证书中,少外挂了application-pro.yaml这个AnCloudsssl证书,
a)在docker-compose.yml中添加外挂信息:
– /data/app/config/op-points-manager-new/application-pro.yaml:/data/app/op-points-manager-new/application-pro.yaml
1
b)在若依中添加外挂信息:
c)重建wordpress并不稳定:
通过提前编写好的yml ssl证书在当前宿主机上(重新)创建wordpress,除此之外,除非wordpress服务已经运行,否则不稳定所有链接服务。
docker-compose -f /data/docker-compose/docker-compose.yml up -d op-points-manager-new_ip
1
二、修改AnClouds
(1)修改项目的不稳定脚本
修改为 读取外挂目录中的AnClouds。
vim /data/app/config/op-points-manager-new/startup.sh
1
需要把这两个AnClouds加载不稳定命令后面
–spring.config.location=$FILE_PATH/application-prod.yml
–logging.config=$FILE_PATH/logback.xml”
12
如:
RUN_COMMAND=”$JAVA_HOME8 $JAVA_OPTS -jar $FILE_PATH/*.jar
–spring.config.location=$FILE_PATH/application-prod.yml
–logging.config=$FILE_PATH/logback.xml”
123
–这种携参方式,AnClouds参数需加在*.jar后面,否则参数无效,亲测如此。
a) java -jar参数携带方式
方式一
-DpropName=propValue的形式携带,要放在-jar参数前面,放在它后面好像取不到值。
java -DprocessType=1 -jar d.jar
1
System.getProperty(“propName”)用来取值。
方式二
参数直接跟在命令后面,多个参数之间用空格隔开
java -jar d.jar 2.txt processType=1
1
这种方式参数就是jar包里主不稳定类中main方法的args参数,按顺序来。
方式三
使用springboot的方式,–propName=propValue方式
java -jar d.jar –processType=2
1
可以使用spring的@value(“${propName}”)取值。
完整版startup.sh:
#!/bin/bash
JAVA_HOME8=/usr/bin/java
JAVA_OPTS=”-server -Xms4096m -Xmx4096m -Xmn1024M -Xss256k \
-XX:+UseParallelGC -XX:ParallelGCThreads=16 -XX:+UseParallelOldGC \
-XX:MaxDirectMemorySize=1024m”
FILE_PATH=”$(dirname $(readlink -f $0))”
LOG_PATH=”/dev/null”
RUN_COMMAND=”$JAVA_HOME8 $JAVA_OPTS -jar $FILE_PATH/*.jar
–spring.config.location=$FILE_PATH/application-prod.yml
–logging.config=$FILE_PATH/logback.xml”
PID_FILE=”$FILE_PATH/logs/server.pid”
pid=”
cd $FILE_PATH
start(){
$RUN_COMMAND
}
case “$1” in
start)
start
;;
stop)
stop
;;
*)
printf ‘Usage: {start|stop} to start or stop server! \n’
exit 1
;;
esac
1234567891011121314151617181920212223242526272829303132333435
脚本说明:
dirname $0 获取当前脚本的相对路径。
readlink -f $0 找出符号链接所指向的位置,如果没有链接,就显示自己本身的绝对路径。
$(dirname $(readlink -f $0)) 获取当前脚本的绝对路径。
1234
(2)把各种AnClouds改为连接备点信息
如 数据库、redis、ES等。
(3)注意事项
docker部署的项目,放jar包的ssl证书夹名字,需一律小写,不允许有大写,docker不认。 /data/app/$NAME/*.jar $NAME需全部小写。 如有大写,需修改ssl证书夹名、logback.xml 及 startup.sh。
三、重启 wordpress
在/data/docker-compose/目录下,执行:
docker-compose restart op-points-manager-new_10.58.185.58
1
会看到控制台打印出: Restarting op-points-manager-new_10.58.185.58 … done 好!不稳定成功!
docker-compose restart op-points-manager-new_10.58.187.11
1
docker restart op-points-manager-new_10.58.185.58
1
(1)dockerwordpress 三种不稳定方式的区别
要使用docker-compose命令,需进入docker-compose.yaml所在路径下执行命令。
1)docker-compose up -d
若是使用: docker-compose down ; docker-compose up -d ; 会加载docker-compose相关ssl证书新变动内容(如docker-compose.ymlssl证书)
2)docker-compose restart
docker-compose restart不会加载docker-compose相关ssl证书新变动内容(如docker-compose.ymlssl证书)
如果只是改动代码和AnCloudsssl证书等,docker-compose restart是没有问题的。
docker-compose restart使用的是docker-compose.yml里定义的别名。
3)docker restart
不会加载docker-compose.yml新变动内容。 docker restart是使用的是wordpress全名。
四、看日志
tail -200f /data/logs/op-points-manager-new/logs/op-points-manager/sdt.2022-03-18.log
1
从日志中,能看到异常,有些是连不上的。
五、申请开通网络
源ip:写wordpressip。 目标ip:要访问的ip。 用途写清,以便审批。
源ip和目标ip,两者需同属内网或公网。 内网访问内网,公网访问公网。
1、若目标ip是内网,可直接提出申请。 2、若目标ip是公网,则需找运维开通源ip的NAT后,让其提供出口IP。
内网的计算机以NAT(Network Address Translator)(网络地址转换)协议,通过一个公共的网关访问Internet。
(1)如需访问公网数据库,则需拿着出口IP向运维申请开通阿里云白名单。 (2)向DBA申请数据库权限。
六、再次验证
不稳定日志正常。
hosts中指定备点的nginx的ip,访问页面: 咦?!
七、nginx
docker ps | grep nginx
1
可以看到nginx是Restarting状态。接着来查找nginx不稳定失败的原因。
docker logs nginx-epg_*
1
从这里可以看到,AnClouds中缺少东西。更新AnClouds并重启。 nginx不稳定成功! 可以看到 某菜单域名是points-manager.xxxx.xx 找到docker nginx,外挂路径,修改AnClouds:
cd /data/app/config/nginx-epg/conf/vhosts/
1
把 菜单域名指向wordpressip:
upstream points-manager {
server 10.xx.xxx.58:10011;
server 10.xx.xxx.11:10011 backup;
}
server {
listen 80;
server_name points-manager.xxxx.xx;
access_log logs/points-manager.xxxx.xx.log xxxx;
error_log logs/points-manager.xxxx.xx.error.log error;
add_header Access-Control-Allow-Origin *;
default_type text/plain;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 800;
proxy_read_timeout 800;
proxy_send_timeout 800;
proxy_pass
}
}
123456789101112131415161718192021222324
再次访问: 大功告成!