
应用
文章平均质量分 66
左直拳
程序猿
展开
-
linux下创建c++项目的docker镜像和容器
构建c++项目的docker镜像,跟java项目一样,都是在项目中创建一个Dockerfile文件,然后就可以构建镜像,接着创建容器。就这么简单。但这不是一个简单的任务。c++项目没有虚拟机的概念,许多依赖库都要在Dockerfile里申明,构建的过程中引入,所以Dockerfile的内容比java的要长得多。由于我的c++项目使用了CMake构建,所以Dockerfile也跟CMakeLists.txt紧密相关。原创 2025-04-29 11:17:00 · 791 阅读 · 0 评论 -
mysql community 8.0.23升级到8.0.42再到8.4.5
我觉得8.0到8.4跳跃太大了,如果在生产系统弄,万一升级失败,原来的又用不了,那就完犊子了,风险太大。打开官网,一顿好找。现在国外的一些个网站,似乎有一种倾向,页面洋洋洒洒,林林总总,废话一大堆,就是不肯老老实实给出下载的链接。我们服务器上现有的版本是8.0.23,运行8.0.42的安装包,它是直接将现有的8.0.23版本升级到8.0.42,目录、端口什么的都没变,安装完之后可以继续使用,数据不受影响。我原先装的是8.0.23,就是64位的,然后下载了这个8.0.42的所谓32位,升级后仍然是64位。原创 2025-04-28 18:10:08 · 645 阅读 · 0 评论 -
批处理文件监测python程序并自动启动
服务器有个python程序在跑,但不稳定,只要网络不通或者别的什么原因,它就会自动退出。本来应该修改这个python程序,但它不是我写的,作者已经离职。项目时间紧,我就想写个批处理命令,用windows的任务计划运行它,每隔一段时间(比如每分钟)检查一下该进程,如果还在运行则忽略,否则自动打开该程序。原创 2025-04-14 11:54:55 · 277 阅读 · 0 评论 -
nginx配置跳转设置Host有误导致报404问题
我们有个项目,前端调用了第三方接口。为了避免跨域,所以使用nginx进行转发。近日第三方调整了安全策略,http转换成https,原本使用ip,现在也改成使用域名,所以nginx这里我们也需要改一下。如果后端服务器对 Host 头部有严格要求(例如必须是 gh.abc.com),则需要显式设置 Host 为后端服务器的域名。默认情况下,Nginx 会将客户端请求的 Host 头部(例如 10.26.40.24:9988)转发给后端服务器。主要是nginx的配置代码,都是抄过来的,东抄西抄,不知道具体含义。原创 2025-03-27 17:06:51 · 482 阅读 · 0 评论 -
下载vmware17
我用VMware10安装ubuntu24,死活不能成功,要么突然退出,要么提示光盘读取失败(用的ISO文件,居然装模作样的说光驱读取失败)。但是上个月我用同一台机器,同一个VMware就安装成功了。真是见了鬼了。也许是VMware10版本太低了?就想下载个比较新版的。据说目前是VMware17,并且对个人来说是免费的,不必耗时耗力去找验证码。但是下载也不容易。现在的官方网站普遍搞得很复杂,东西都藏得很深,根本无从下手,折腾了好久。原创 2025-03-26 15:53:16 · 1038 阅读 · 0 评论 -
mysql读写分离与proxysql的结合
上一篇文章介绍了,而主从复制的目的,是为了读写分离。读写分离,拿spring boot项目来说,可以有2种方式:1)设置2个数据源,读和写分开使用2)使用中间件,如proxysql。它会根据sql语句自动匹配到主、从库方式一好处是灵活,可控,缺点是需要自己写一点代码,已有的项目修改可能比较大;proxysql的话,还是跟之前一样,只有一个数据源,代码好像也不用改。问题是,我用了一下,感觉有一些坑。也许是还不懂得怎么使用的缘故。原创 2025-02-12 18:26:14 · 1046 阅读 · 0 评论 -
java访问华为网管软件iMaster NCE的北向接口
NCE的XML接口感觉就是异常繁琐,数据类型非常多,传参、返回值都非常复杂。如果是http接口的话,参数全部是json,结构简单明了。而且,利用XML传数据,少量数据还好,大批量数据就不行,XML相比json,实在笨重,传输量太大了。华为这个nce软件,叫网管软件,它接管了整个局域网,然后在上面做各种逻辑划分和管理。不过,它加载需要一段时间。比如我们项目,设备通电以后,20分钟后网络才能访问。再上面做一些更改,比如用户解锁,要约2个小时才生效。原创 2024-10-31 19:56:20 · 1495 阅读 · 0 评论 -
VmWare下的linux虚拟机磁盘空间扩展
我用vmware开启了一个虚拟机,虚拟机操作系统是centos7。今天发现磁盘空间不够了,导数据到里面的mysql,提示没有空间,之后mysql也连不上了。这个mysql部署在docker里,结果停止都停止不了,强制停止也不行。无奈之下,重启了docker,万幸还能访问。使用df -Th命令查看,发现linux的磁盘空间已经使用了100%。任凭我到处删东西,东拼西凑,也只剩下700M。把牙一咬,决心不辞劳苦,不避风险,给它扩展空间。原创 2024-10-13 12:01:54 · 1172 阅读 · 0 评论 -
windows下安装rabbitMQ并开通管理界面和允许远程访问
如题,在windows下安装一个rabbitMQ server;然后用浏览器访问其管理界面;由于rabbitMQ的默认账号guest默认只能本机访问,因此需要设置允许其他机器远程访问。这跟mysql的思路很像,默认只能本地访问,要远程访问需要另外设置,并且应该是新增一个账号来支持远程。这种做法一下子看上去很奇怪,数据库、消息队列天然就是要大家共同使用的,只能本机使用有什么意义?但细想好像又没有什么毛病,虽然有点不方便,但安全意识是有了。以下是我初次在项目中使用rabbitMQ的一点记录。原创 2024-09-29 16:19:32 · 1822 阅读 · 0 评论 -
git更换远程代码库
比如,在公司内部,使用局域网地址访问远程库。现在出差在外,使用公司映射出来的外网地址访问同一个代码库。只须修改/.git/config,将里面的地址改成新地址即可。1)修改/.git/config,将里面的地址改成新地址。2)在本地代码库,拉取新代码。原创 2024-07-04 10:51:52 · 469 阅读 · 0 评论 -
centos中安装并设置vsftpd
vsftpd是一个可安装在linux上的ftp服务器软件。原创 2024-06-15 21:59:39 · 601 阅读 · 0 评论 -
yum提示没有可用软件包问题
问题在于没有定义外部仓库。解决思路是加一个。原创 2024-05-15 21:17:08 · 1660 阅读 · 0 评论 -
修改centos7的dns解决docker拉取镜像超时问题
发觉里面的地址设为114.114.114.114。114我有点印象,估计是中国电信的。网上文章说改为8.8.8.8。据说114用于国内,8888(发发发发)用于国外。但我两个都不用,我改为180.76.76.76,这个是百度的公共DNS服务器。近期在一台centos7的服务器上部署系统,拉取docker镜像时总是超时,如图所示。网上有教程说,可以修改操纵系统的dns地址,试了一下,果然搞定。忽如一夜春风来,两行白鹭上西天。原创 2024-03-01 11:28:41 · 1939 阅读 · 0 评论 -
将nacos从1.3升级到2.3
这个非常重要。所谓的备份,首先是指把nacos的配置全部导出来,异机保存,下载到本地。同时不要删除现有的docker容器,可以将其停止,这样不影响新创建的容器使用现有的端口。不过,容器名不能重复。比如现有容器名为nacos,那么新创建的容器可以叫ncos230。原创 2024-01-26 11:30:45 · 2737 阅读 · 0 评论 -
docker-compose初探
我一直直接使用docker命令来创建容器,没有怎么用过docker-compose。也不知道docker-compose和docker有什么区别,docker-compose有什么好处。现在我约略认为,docker-compose是一个简化docker命令的工具,或者说,它是能将docker各种繁琐的命令集成到配置文件的工具,所谓compose也者,就是组合的意思吧。原创 2024-01-25 18:58:38 · 596 阅读 · 0 评论 -
下载nacos 2.3 for arm64
客户组织安全测试,我们系统测出了好几个高危问题,其中大部分是关于nacos的。原先的nacos版本太低了,是1.3的。现在(2024.01)已经是2.3了,应该装个新的。我们使用docker安装nacos,原本很简单的,只有一个小小的问题,就是服务器的CPU是arm64架构的。现在一般政府项目都是这样,国产化,信创,CPU必定是arm架构。因此,nacos也需要下载支持arm64的镜像。还有一个问题是,服务器不在互联网上,怎么下载?思路:1)在能上网的服务器上下载支持arm64的镜像。原创 2024-01-25 18:25:55 · 2854 阅读 · 1 评论 -
批处理文件中运行指定路径下的exe文件
如图所示,假设有 F:\数据采集和控制模拟程序\2022\SmlData/ChangeValue.exe,现在在上一层目录中设置批处理文件,运行这个exe文件,该如何写呢?其中,cd /d 是改变工作目录,默认是 c:/windows/system32,%~dp0是本批处理文件所在路径。原创 2023-10-25 13:44:17 · 3426 阅读 · 0 评论 -
使用VS2022编译及运行QT项目
QT是一种版本的C++。我记得以前微软有VC,visual c++,是C++没错,但它又有一些自己的类库,比如可以拖控件,方便开发桌面软件。按我的理解,VC是C++的超集;同样,QT也是C++的超集。为啥要用QT呢?QT方便做界面,尤其是那种电气设备控制软件的界面,比如带仪表盘啥的。VC太out太难用了,就被QT取代了。原创 2023-07-06 17:39:08 · 9642 阅读 · 1 评论 -
虚拟机上用docker + nginx跑前端并支持https和http
情况是这样,我在虚拟机上,使用docker跑前端,需要这个前端支持https,原http的话自动跳转到https。另外,前端部署使用了负载均衡,即使用了3个docker跑前端:1个入口,另外2个是前端,指向了同一份网站代码。现在https已经是标配了,http除了方便一点,没有什么好留恋的,最好的处理方式,不是同时支持两种协议,而是将http自动跳转到https。前面说到,“$server_name“ 在脚本中被赋值,但是”$host"没看到哪里有赋值,其实就是代表我们所访问的地址,无须赋值。原创 2023-06-30 10:45:04 · 1197 阅读 · 0 评论 -
使用docker部署多个nginx站点并配置负载均衡
项目前端部署在docker。该前端有时会出现无法访问,重启docker容器后又可以。猜测是不是单个docker容器压力过大,就想引入负载均衡试试效果。原创 2023-06-02 18:28:59 · 2700 阅读 · 0 评论 -
使用docker部署nginx并支持https
配置nginx支持https,其实也简单,搞个证书,然后修改下配置文件就好了。我以前一篇文章()为例,做个记录。如前所述,我使用docker,部署了3个nginx。一个做负载均衡服务器,另外两个做应用。结构如下:那么,支持https,也是在负载均衡这里进行设置。原创 2023-06-02 18:58:03 · 2943 阅读 · 1 评论 -
web访问存储在政务网内部华为云中的对象
某项目运行在政务网,涉及的照片、视频等数据存储在内部华为云。同时该项目也可以在互联网访问。这样子的话,照片、视频就有个安全性问题。抛开保密性不谈,一个视频动辄几个G,如果它的链接在互联网上长久有效,想播放就能播放,哪里有这么多带宽消耗得起。老实说,华为云在这方面处理得还可以,尽管对开发者不够友好。主要是帮助文档说得不清不楚,说一点漏一点,又缺乏示例,只能靠程序员苦苦探寻。不过,几乎所有得帮助文档都这个鬼样。原创 2023-06-02 14:04:08 · 630 阅读 · 0 评论 -
视频国标GB28181及一个相关平台的应用
wvp-GB28181-pro开源,免费,国产。在开发环境测试,效果不错。云端录像因为持续运行时间还不太长,目前只有几天,可靠性未知。WEB页面播放大华摄像头视频解决方案国标GB28181介绍7*24不间断录像wvp-GB28181-pro的docker镜像。原创 2023-05-12 09:02:13 · 3110 阅读 · 0 评论 -
采用docker部署时kafka共享zookeeper的网络配置
采用docker部署kafka、zookeeper,一般的做法是创建一个docker网络,然后kafka、zookeeper都使用这个网络。问题是,我部署到生产环境的时候,这种做法被禁止了。原因是添加了这个docker网络以后,服务器就无法访问了。该服务器是通过互联网访问的。我也不知道为啥就会搞到他们网络崩溃,总之就是不允许。那怎么办?经摸索,证明可以采用两个docker容器共享其中一个容器的网络配置的做法。众所周知,docker容器各自独立,相互区隔,自成一个世界。同一个网络,就是为了能够互相访问。原创 2023-05-09 17:27:10 · 1298 阅读 · 1 评论 -
政务网中使用内部华为云
项目按甲方要求,部署在政务网,各种需要在系统中播放的视频存放于内部华为云;然后,系统需要在互联网上访问。经过一天捣鼓,终于搞定。过程中遇到了许多问题,有nginx代理的,docker域名解析的,华为云存储桶默认设定的访问策略不支持公共读和匿名访问,https站点无法访问http资源,等等。最大的困难在于,政务网的管理员对华为云好像也不上心,一问三不知,没有示例,全凭自己摸索和分析;而且,服务器操作系统是linux,华为云只有一个名曰obsutil的命令行工具,只能敲命令和访问策略。原创 2023-05-06 19:19:47 · 1129 阅读 · 1 评论 -
用docker承载mysql
这两天部署系统到生产服务器,前端后端部署docker是毫无疑义的,但mysql呢?答案是mysql可以部署到docker。原创 2023-04-21 10:45:04 · 329 阅读 · 0 评论 -
centos7设置固定IP
windows下,用vmware装了个centos7,重启之后,其ip地址就变了,搞到外部无法访问。要知道,宿主机本身访问虚拟机是没有问题的,但外部要访问的话,我是通过NAT模式,将centos的ip和宿主机挂钩,做转发实现的。centos的ip没变一次,这个转发设置就要更改一次,那太麻烦了。因此需要将这个centos的ip设置一个固定的IP。原创 2023-03-23 13:41:58 · 317 阅读 · 0 评论 -
linux下设置定期执行需要root权限的sh文件
比如我这个叫clean.sh,位于/home/admin/gdhysthj/clean.sh。意思是每天0点0分即执行这个clean.sh。注意 “00***” 之间有空格隔开。第1列表示分钟 00~59 每分钟用*或者 */1表示。2、首先将shell文件赋权为可执行文件。第2列表示小时 00~23(0表示0点)第5列标识号星期 0~6(0表示星期天)1、准备好一个shell文件。第3列表示日期 01~31。第4列表示月份 01~12。3、切换为超级管理员。原创 2023-03-03 19:01:49 · 1804 阅读 · 0 评论 -
制作for arm64 cpu架构的docker镜像
究其原因,是用于构建docker容器的实例是for x86架构的。我前段时间买了个阿里云,没有留意CPU的架构是ARM的,结果部署系统的时候就发现出问题了,部署在docker里的容器实例根本跑不起来,提示什么执行文件格式错误(“exec format error”)。上述语句中的参数,–platform linux/arm64,这个肯定是顾名思义,非常明显,无须多言;解决办法是,将我们发布的jar包或网站文件,在arm操作系统中创建镜像,然后用这些镜像来创建docker容器。原创 2023-02-19 21:53:59 · 1772 阅读 · 0 评论 -
docker容器日志清理
最近发现linux(Centos 7)虚拟机的空间不够了,想创建新的容器都失败。剩下不到100M。之前还有好几个G。然后每天不定期查看磁盘空间,发现不断被蚕食。今天比昨天就少了100M;然后下午比上午又少了50M。谁在吞噬服务器的硬盘空间?docker。准确地说,是docker容器里跑的java程序,不断在产生日志。进入容器目录里查看,可以看到日志文件约800M。是一个日志文件,太夸张了。这个虚拟机上跑了好几个docker容器。目前的解决办法是用批处理文件手动删掉。原创 2023-01-10 17:37:59 · 8067 阅读 · 0 评论 -
intellij idea中拷贝代码并添加为module
intellij idea中,将一份现成的子系统代码,拷贝、加入现有项目,会有一个如何识别、集成的问题。即代码粘贴到现有项目中以后,系统并不能识别,并不能顺利地成为现有代码的一部分(module)。2)也可以右击右上角的齿轮,选"Project Structure",将该子系统添加为module。1)在idea右侧的maven中,添加该子系统。原创 2022-12-22 15:52:10 · 815 阅读 · 1 评论 -
使用maven发布spring boot项目的脚本
注意指定项目需要在pom.xml中登记,路径中每一个节点需要在不同级别的pom.xml中登记。比如,上述语句中,plactform需要在当前级别的./pom.xml中登记。使用maven发布spring boot项目,失败!-am:项目依赖的项目也同样被发布。否则,会报找不到相关项目的错误。-pl:发布指定项目。原创 2022-11-14 18:11:17 · 373 阅读 · 0 评论 -
虚拟机中docker承载的微服务注册到nacos无法访问问题
今天将一个项目中的部分子系统部署,部署到虚拟机的docker里运行,结果外部无法访问。查看nacos,显示服务已经成功注册。后来发现,该服务的IP地址外部无法访问:估计172.17.0.0是docker自身的网段,在上面跑的程序,注册到nacos,直接就用到了docker里的地址。因为对于应用程序来说,docker是容器,就是一个操作系统。解决办法是,在虚拟机的宿主机上添加对该地址的路由。我的虚拟机装在windows下,即在windows里添加路由。原创 2022-11-11 18:36:05 · 10476 阅读 · 1 评论 -
xcopy命令拷贝文件时忽略指定文件夹
xcopy命令拷贝文件时指定忽略指定文件夹原创 2022-10-13 17:17:46 · 1679 阅读 · 0 评论 -
postman测试提交json数据到数据接口
postman测试post方式提交json数据到服务器接口原创 2022-06-15 14:09:18 · 2296 阅读 · 0 评论 -
WIN7无法被远程桌面问题
我有台笔记本,操作系统是WIN7,能远程桌面别的机器,但死活不能被别的机器远程。2020年因为周围有些机器中过勒索病毒,所以捣鼓了一些安全策略,也不知道是不是这个原因,搞到现在无法被远程桌面了。好在根据网上一篇教程,终于搞定。远程桌面提示你的凭据不工作了,如何解决以下内容完全取自该篇教程,这里仅仅起一个记录的作用。按照作者的说法,分为好几个步骤。我是搞到了第四步,才搞定。这些步骤可能不一定要全部走遍才能搞定,比如添加windows凭据。注:以下说的计算机,都是指我们需要远程桌面登录上去的计算机。这一步谁都原创 2022-06-10 10:06:53 · 2232 阅读 · 0 评论 -
nginx转发https到http
微信小程序和公众号,要求外链的页面或API必须使用https。https意味着需要证书,在测试阶段,很不方便,因此部署的测试站点都是http。于是尝试在现有的https站点中,用nginx转发请求到只有http的测试站点。方法众所周知,在nginx.conf中添加一个转发规则。 server { listen 80; server_name 服务器IP; 。。。 } server { listen 443 ssl; server原创 2022-04-08 11:34:46 · 18084 阅读 · 5 评论 -
蓝绿发布金丝雀发布灰度发布滚动发布AB测试
金丝雀不是说它外形漂亮或有特点,而是说它对瓦斯很灵敏。这些名字玄而又玄,逼格十分高大上。到底是些啥?好像不了解一下,就完全看不懂当下流行的吹哔哔技术PPT了。一、蓝绿发布不停老版本,部署新版本然后进行测试。确认OK后将流量切到新版本。如果出现问题,则切回老版本。绿色是新版本,蓝色是老版本。蓝绿发布的优点是升级切换和回退速度非常快,缺点是新老切换是全部切换,中间没有过渡,如果新版本有问题,则对用户体验有直接影响。并且需要两倍机器资源。适用于对用户体验有一定容忍度的场景。同时机器资源有富余或者可以按原创 2022-03-31 19:59:32 · 977 阅读 · 0 评论 -
docker中的java程序运行ffmpeg拉流
差点就放弃了。搞这些东西没有什么意义。有个java项目,需要开启ffmpeg拉流,然后想将这个程序部署在docker。不料颇多波折。幸而最后成功,差点就放弃了。记录如下。一、基本情况1、我们写了个视频拉流控制程序,依赖JDK1.8。运行过程中,需要启动操作系统的ffmpeg进行拉流。2、部署环境是统信欧拉版(UOS Euler) + docker。统信欧拉版是基于华为的OpenEuler(其前身是华为的服务器操作系统EulerOs),是将OpenEuler的内核 + 统信的桌面操作模块DDE。“统原创 2022-03-28 18:28:47 · 4066 阅读 · 13 评论 -
sql server 2008 express的防火墙配置
老革命遇上新问题。曾几何时,我因为用sql server时间比较长,相对比较熟悉,不料今天却因为防火墙设置,局域网的开发机器无法访问服务器上的sql server而搞来搞去,一个上午就搭进去了。试来试去,最后可以,记录一下。一、基本情况操作系统:windows 2008 server数据库: sql server 2008 express服务器本机可以访问sql server,但局域网上其他机器则不行。关掉服务器上的防火墙,外部可以访问,说明是防火墙问题。二、修改步骤1、启动 sql serv原创 2022-03-16 16:27:39 · 2631 阅读 · 0 评论