2021-10-16
190
首先下载解压版Tomcat,解压多个tomcat然后修改文件夹名:[图片]每个tomcat做如下操作:1. 环境变量(不需要)设置CATALINA_HOME1为tomcat1的目录设置CATALINA_BASE1为tomcat1的目录2. 进入conf文件夹,修改server.xml中的8080,8005,8009端口3. 替换CATALINA_HOME及CATALINA_BASE进入tomcat1的bin目录,将catalina.bat,startup.bat,service.bat进行如下替换替换CATALINA_HOME为CATALINA_HOME1替换CATALINA_BASE为CATALINA_BASE1替换完成后,在bin目录下执行cmd命令./service.bat install你的tomcat服务名如下提示代表安装成功,执行netstarttomcat服务名 即可启动tomcat[图片]在服务列表中可以看到刚刚安装的服务:[图片]记录: jenkins部署至tomcat默认项目时,需将默认的ROOT文件夹删掉,context path填/而不是/ROOT,否则报错:java.net.SocketException: Software caused connection abort: recv failed[图片]
继续阅读»
2021-08-12
296
Let's Encrypt提供免费https证书,可通过certbot进行在线证书颁发,颁发时需认证域名所有者,可通过webroot、txt解析方式认证Webrootwebroot方式即CertBot通过访问颁发证书的服务器的以下路径example.com/.well-known/acme-challenge/xxx,进行授权认证,其中xxx为certbot随机生成的值,生成在/data/letsencrypt (可通过-w参数指定),因此使用docker时需要将/data/letsencrypt挂载至宿主机,并配置允许nginx访问该内容,注意若nginx的/路径已经配置其他服务,应该将/.well-know配置在该server下,否则路径匹配不会成功server { listen 80; server_name zhangxiaoqiang.top www.zhangxiaoqiang.top; root /usr/share/nginx/html; index index.html; location / { proxy_pass http://172.16.1.80:8080/; } location ^~ /.well-known { alias /home/certbot/au/.well-known; } }命令如下:docker run -it --rm --name certbot -v "/home/certbot:/etc/letsencrypt" -v "/home/certbot:/var/lib/letsencrypt" -v "/home/certbot/au:/data/letsencrypt" -v "/home/certbot/log:/var/log/letsencrypt" certbot/certbot certonly -d a.zhangxiaoqiang.top --agree-tos -m 1711764827@qq.com --webroot -w /data/letsencrypt -v其中:-d用于指定生成证书的域名--webroot:验证方式使用webroot--agree-tos:同意他的协议-w/--webroot-path:站点目录,即生成xxx认证文件的路径,这个路径为容器中的路径,请注意宿主机nginx配置,不正确配置宿主机nginx将无法访问认证文件导致认证失败-m:邮箱,证书过期了会通知到该邮箱TXTtxt方式认证支持生成泛解析域名的证书,及域名颁发给*.example.com,首先在这里选择certbot官方提供的对应的解析服务商文档:https://certbot.eff.org/docs/using.html#dns-plugins利用certbot官方提供的docker镜像自动配置cloudflare的txt解析,去这里寻找你对应的域名DNS解析商的docker镜像:https://hub.docker.com/u/certbot/按照官方文档,去解析服务商生成一个secreat或者api-token,这里以cloudflare为例,官方说明如下:https://certbot-dns-cloudflare.readthedocs.io/en/stable/命令如下:docker run -it --rm --name certbot -v "/home/certbot:/etc/letsencrypt" -v "/home/certbot:/var/lib/letsencrypt" -v "/home/certbot/au:/data/letsencrypt" -v "/home/certbot/log:/var/log/letsencrypt" certbot/dns-cloudflare certonly -d *.zhangxiaoqiang.top --agree-tos -m 1711764827@qq.com --preferred-challenges dns --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini --server https://acme-v02.api.letsencrypt.org/directory其中:--preferred-challenges dns指定使用dns方式验证域名所有者--dns-cloudflare指定解析服务商是cloudflare--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini 指定包含secret文件,解析服务商不同参数名也不同,注意docker挂载, secret在解析服务商生成--server https://acme-v02.api.letsencrypt.org/directory 颁发泛解析域名需要指定这个server,默认的server只能颁发单个域名的证书颁发成功后证书会在容器/etc/letsencrypt/live对应的域名文件夹中,请对应查看宿主机位置注Let's Encrypt限制了每个域名颁发证书频率,调试时可加上 --dry-run 参数使用官方提供的测试环境颁发证书官方说明如下:https://letsencrypt.org/zh-cn/docs/rate-limits/可以写一个脚本定时重新颁发证书,后面再研究crontab -e放入以下内容添加 0 3 */7 * * /home/docker/certbot/autorenew.sh /home/docker/certbot/log表示从今天开始每隔7天晚上3点执行任务autorenew.sh脚本内容如下#!/bin/bashrm -rf /etc/nginx/cert/live/rm -rf /etc/nginx/cert/archive/docker run --rm --name certbot -v "/etc/nginx/cert/live/:/etc/letsencrypt/live/" -v "/etc/nginx/cert/archive/:/etc/letsencrypt/archive/" -v "/home/docker/certbot/cloudflare.ini:/cloudflare.ini" certbot/dns-cloudflare certonly -d *.zhangxiaoqiang.top --agree-tos -m 1711764827@qq.com --preferred-challenges dns --dns-cloudflare --dns-cloudflare-credentials /cloudflare.ini --server https://acme-v02.api.letsencrypt.org/directory --no-eff-emailsleep 100snginx -s reload这里注意不能使用交互模式运行容器(-it), crontab计划任务是无法进入任何终端的参考资料:https://certbot.eff.org/docs/using.html?highlight=webroot#webroothttps://www.cnblogs.com/txb1989/p/13079961.htmlhttps://www.jianshu.com/p/1eb7060c5ede?utm_campaign=maleskineutm_content=noteutm_medium=seo_notesutm_source=recommendationhttps://www.cnblogs.com/jpfss/p/10232980.html
继续阅读»
2021-05-19
138
目的:使用Docker运行Jenkins,以最小成本完成提交代码自动构建并部署项目1.创建并运行Jenkins容器:docker run -u 0 -d -p 8080:8080 -p 50000:50000 --restart=always -v /home/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /run/docker.sock:/var/run/docker.sock --name jenkins jenkinsci/blueocean其中第二个-v挂载是为了让Jenkins容器能直接使用宿主机的Docker命令,用于镜像的构建,容器的创建及运行2.配置Jenkins...
继续阅读»
2021-03-06
123
原来的项目结构:D:\MYBLOG├─src│ └─top│ └─zhangxiaoqiang│ ├─advice│ ├─config│ ├─controller│ ├─entity│ ├─interceptor│ ├─mapper│ ├─service│ ├─test│ └─util└─web ├─resource │ ├─bootstrap-3.3.7-dist │ │ ├─css │ │ ├─fonts │ │ └─js │ ├─bootstrap-select │ │ ├─css │ │ └─js │ ├─css │ ├─iframe │ ├─image │ ├─js │ ├─page │ └─summernote │ ├─font │ ├─lang │ └─plugin │ ├─databasic │ ├─hello │ └─specialchars └─WEB-INF └─lib我首先尝试的是打开项目,右击Module,选择Addframeworksupport,选择maven他给我生成了pom文件,但是提示无法读取pom.xml,我忽略了然后我将依赖全部添加好后,发现点击ide的build, 提示找不到包, 而代码里面却不报错能点进去经历百度上各种cp的解决方案后还是没有解决于是将项目删掉,将pom.xml拷贝到项目副本中,打开项目,提示找到未配置的pom.xml,选择立即配置即可,然后在项目配置中删除之前lib依赖即可,最后的文件结构只是在项目根增加了一个pom文件
继续阅读»