自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(779)
  • 资源 (12)
  • 收藏
  • 关注

原创 ############---------写博客的意义---------############

简介 每个人对于博客的用户可能不一样,我这个博客呢主要记录一些我在工作中遇到的一些技术问题,或者是网上查找的一些资料整理。有原创文章,也有转载的,都是记录自己觉得有意义的东西。起因 2014年的一天,开始进行部分EveryNote资料迁移 2011年毕业工作我就在记录自己接触到的知识了,之前我都是将自己的资料和整理的信息记录到EveryNote上,但是...

2014-02-24 10:01:34 2060 1

原创 后端nginx使用set_real_ip_from获取用户真实IP

假如说你的CDN厂商使用nginx,那么在nginx上将$remote_addr赋值给你指定的头,方法如下:后端PHP代码getRemoteUserIP.phpphpecho $ip;?访问getRemoteUserIP.php,结果如下:120.22.11.11 //取到了真实的用户IP,如果CDN能给定义这个头的话,那这个方法最佳优点:获取到最真实的用户IP地址,用户绝对不可能伪装IP缺点:需要CDN厂商提供。

2024-04-07 13:32:13 1087

原创 nginx多https证书配置精简

其实有很多方式,网上看到一个这个方法,给大家介绍一下。

2024-04-07 10:51:48 767 1

原创 Nginx专栏分享

这里给大家分享一个其他博友的专栏,很不错:https://blog.csdn.net/wzj_110/category_9072895.html

2024-03-25 17:03:44 201

原创 安装python web.py Mako

sudo dnf install python3pip3 install --user mako在linux下安装python2.7.x,打开终端:  wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz #下载到当前目录  tar xvfz Python-2.7.3.tgz #解压  cd Python-2.7.3 #进入目录   ./configure  make #编译  su #转为root用户  make install #安装

2024-02-29 10:11:12 867

原创 Mybatis 批量插入数据 SQL

上面代码中在 SQL 语句的最外层使用了 for 循环,好处是将 List 类型的集合传递来写入数据时可以有的是新增有的是修改,例如3行数据,第一三行由于主键字段对应属性 sid 被设置为 NULL ,会向数据库中新增行,第二行数据设置了 sid ,并且该值在数据库中有对应行,那么会修改数据库中的该行上的数据。通过在 java 中测试,发现上面的语句新增一行成功后会返回1,修改成功后会返回2(这里有疑惑,如果清楚原因的麻烦跟帖科普下)。这种写法适合插入数据的项不变,

2024-02-02 11:11:45 1429

原创 mybatis&Mysql分页查询,以及SQL_CALC_FOUND_ROWS与count(*) 性能对比

温故而知新,这里记录一下。

2024-01-11 17:48:18 1263

原创 HandlerMethodArgumentResolver用于统一获取当前登录用户

为了将 HTTP 请求参数转换为 Java 对象,我们需要创建一个自定义的实现类。在这个类中,我们需要实现方法和方法。要在 Spring Boot 应用程序中使用自定义的实现类,我们需要将其注册到应用程序上下文中。为此,我们可以创建一个类,并实现接口。在这个类中,我们需要重写方法,并将自定义的实现类添加到参数解析器列表中。3.1 自定义权限拦截器自定义权限拦截器AuthenticationInterceptor,需实现HandlerInterceptor。

2023-12-14 17:28:33 1399

原创 springboot-redis设置定时触发任务详解

从Redis 2.8.0开始,Redis加入了发布/订阅模式以及键空间消息提醒(keyspace notification)功能。键空间消息提醒提供了允许客户端通过订阅指定信道获取Redis数据变化的能力。需要注意的是,键空间消息提醒并非可靠的,它不会对订阅端是否接收到消息进行确认。例如某个订阅的客户端暂时断开连接,在其直到恢复连接期间发生的事件将无法再次获得。

2023-12-14 15:39:40 1402

原创 @FunctionalInterface、Lambda表达式和方法引用

小插曲:Callable和Runnable到底什么区别?这两者也都是JDK预定义的函数接口,两者都不接收参数,主要用于多线程编程。Runnable无返回值,一般用于new一个新线程的时候,在新线程中执行代码。Callable一样一般用于在新线程中执行,只不过执行成功后有返回值,如果执行失败还会抛异常。最后,一起分析:c1引用了一个Lambda表达式;c2引用了一个新的Lambda表达式,表示式的实现代码中调用了c1提供的call()方法,并将call()方法的返回值返回。

2023-12-08 10:37:26 1112

转载 Redis实战之Redisson使用技巧详解

什么是 Redisson?来自于官网上的描述内容如下!Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了许多分布式服务,例如分布式锁、分布式对象、分布式集合、分布式远程服务、分布式调度任务服务等等。相比于 Jedis、Lettuce 等基于 redis 命令封装的客户端,Redisson 提供的功能更加高端和抽象,逼格高!

2023-12-07 19:13:39 1117 1

原创 WebMvcConfigurer配置详解

WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个类并实现接口;在Spring Boot 1.5版本都是靠重写的方法来添加自定义拦截器,消息转换器等。

2023-11-14 10:17:42 1306

原创 SpringBoot项目中ModelMapper配置以及使用

项目中对象与对象赋值转换使用的频率非常的高,比如数据库表实体对象(Entity)与业务类对象(Model)之间的赋值传递,或者模型对象(Model)与视图对象(ViewModel)之间的赋值传递。如果我们一个一个字段的赋值,将是非常繁琐并且毫无价值的重复工作,此时虽然我们可以自己通过反射提取个公共的方法来处理,但是更高效的方式是查看是否有第三方已经提供了比较成熟稳定的工具包,避免重复造轮子的工作。

2023-11-13 16:06:32 673

原创 Spring Data JPA方法名命名规则

简单条件查询:查询某一个实体类或者集合。按照Spring Data的规范的规定,查询方法以find | read | get开头(比如 find、findBy、read、readBy、get、getBy),涉及查询条件时,条件的属性用条件关键字连接,要注意的是:条件属性以首字母大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。

2023-11-13 11:29:29 966

原创 Redis ACL安全策略详解

在 Redis6 之前的版本,我们只能使用 requirepass 参数给 default 用户配置登录密码,同一个 redis 集群的所有开发都共享 default 用户,难免会出现误操作把别人的 key 删掉或者数据泄露的情况。因此 Redis6 版本推出了 ACL(Access Controller List)访问控制权限的功能,基于此功能,我们可以设置多个用户,并且给每个用户单独设置命令权限和数据权限。

2023-11-03 14:57:23 656

原创 HSTS详解,以及HSTS VS 301 redirect

看到这篇文章,感觉不错,这里转载记录一下:https://juejin.cn/post/6844903865788137479本文主要是通过梳理一下相关概念,理清这两种配置的目的。

2023-10-30 14:54:55 279

原创 ElasticSearch 8.x 安装及集群搭建

Elasticsearch,简称为ES。ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据。Elasticsearch是面向文档的一种数据库,这意味着其不再需要行列式的表格字段约束。ES会存储整个构造好的数据或文档,然而不仅仅是储存数据,这使得文档中每个数据可以被标识,进而可以被检索。在ES中,执行index,search,sort或过滤文档等操作都不是传统意义上的行列式的数据。ES从根本上对数据的不同思考方式也正是他能应对复杂数据结构的全文检索的原因之一。

2023-10-17 15:31:19 3448

转载 Shiro的基础知识、回顾URL拦截

本文主要讲解的知识点有以下:权限管理的基础知识模型粗粒度和细粒度的概念回顾URL拦截的实现Shiro的介绍与简单入门只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。用户认证用户授权shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。

2023-10-13 15:59:56 282

原创 Nginx支持SNI证书,已经ssl_server_name的使用

传统的应用场景中,一台服务器对应一个IP地址,一个域名,使用一张包含了域名信息的证书。随着云计算技术的普及,在云中的虚拟机有了一个IP,对应多个域名,使用多张证书的应用场景,SNI技术应运而生。SNI(Server Name Indication),即实现了一个服务器使用多个域名证书的TLS扩展,支持用户配置多个域名证书。

2023-10-07 16:49:40 854

原创 nginx 代理 https,temporarily disabled while SSL handshaking to upstream 出现 502 的情况

前段时间我们官网要做一个活动页面, 但是活动页面是用另一个活动页域名, activity.example.com, 但是运营人员需要对外展示的落地页是以官网 www 的域名来处理,所以这时候就会需要在官网的 nginx 指向那边进行页面的代理转发:1234但是实测的过程中, 却发现代理转发的时候,报了一个 502 的错误12看了一下,应该是 nginx 在进行代理请求的时候,就报错了, 应该是 ssl 的握手的错误。

2023-10-07 15:00:25 612

原创 SpringBoot, EventListener事件监听的使用

1、事件(event)可以封装和传递监听器中要处理的参数,如对象或字符串,并作为监听器中监听的目标。2、监听器(listener)具体根据事件发生的业务处理模块,这里可以接收处理事件中封装的对象或字符串。3、事件发布者(publisher)事件发生的触发者。

2023-10-07 10:47:34 197

翻译 我在 20 年的软件工程师生涯中学到的事情

有很多原因会推动你,去构建一个比原先设想的更大的系统,人类似乎有一种提供更多功能的欲望。你应该抵制这种欲望,在满足设计目标的前提下,始终努力构建一个更小的系统,这样你最终会得到一个比最初设计更好的系统。(2)水平再高的程序员,也会在自己擅长的领域犯错,如果遇到复杂的问题,就更是如此了。(12)面试最好用于了解某人是谁,以及他们对特定专业领域的兴趣程度,对于试图弄清楚他们是否将成为一个优秀的团队成员,那是徒劳的。数据可能会比你的代码寿命更长,保持数据的有序和清洁,避免脏数据,从长远来看,会得到很好的回报。

2023-09-28 10:49:25 89

原创 Nginx modules build fail:field ‘pkt6’ has incomplete type

所以修改文件include头顺序,

2023-09-22 16:33:05 1245 5

原创 nginx安装lua、jwt模块,通过lua验证jwt实现蓝绿发布样例

lua-nginx-module-0.10.22.tar.gz # 0.10.16 以后都需要 lua-resty-core和lua-resty-lrucache。luajit2-2.1-20220411.tar.gz #luajit官网存在一定的坑,下载openresty的优化版本。将jwttoken.lua放到nignx所在服务器的/usr/local/lua_core/lib/lua/目录下。--1-按员工code蓝绿,2-按部门id蓝绿,3-按ip蓝绿。修改Makefile,指定luajit。

2023-09-20 16:27:10 278

原创 如何使用反 CSRF 令牌保护您的网站和 Web 应用程序

虽然在许多情况下这在技术上可能是正确的,但通常很难预测访问 API 的所有方式(以及将来可能修改的方式),因此为 REST API 提供 CSRF 保护可能会被视为额外的安全层。使用上述基本的反 CSRF 令牌,您可以在登录时在用户会话 cookie 中设置令牌,然后为每个表单验证相同的令牌。为了平衡安全性和可用性,您可以为您使用的每个表单生成单独的令牌。但现在假设您的站点使用简单的基于令牌的 CSRF 缓解措施,并且您的 Web 服务器在登录后立即发送到浏览器的会话 cookie 中设置令牌。

2023-09-15 09:54:48 666

转载 TLS1.3比TLS1.2更安全在哪里

目前普遍采用的方案都是TLS1.2,据了解,由于技术和成本的限制,目前还没有采用TLS1.3协议,不知在未来的信息安全技术选择上是否会有所改变。从图中可以看到,SSL/TSL层的加入,建立了一个安全连接(对传输的数据提供加密保护,可防止被中间人嗅探到可见的明文;通过对数据完整性的校验,防止传输数据被中间人修改)和一个可信的连接(对连接双方的实体提供身份认证)。图2:TLS1.2的握手图解。该协议由两部分组成: TLS记录协议(TLS Record)和 TLS握手协议(TLS Handshake)。

2023-09-11 15:07:40 384

原创 dockerfile清除缓存

在使用Docker构建镜像时,Docker会根据Dockerfile中的指令逐步构建镜像,每一个指令都会生成一个中间镜像,这些中间镜像会被缓存起来,以便在后续构建过程中加快速度。然而,当我们修改了Dockerfile中的某一行指令时,Docker会从修改的指令开始重新构建,但之前的中间镜像仍然会被复用,这可能会导致构建结果不如预期。所以,在构建Docker镜像时,我们经常需要清除Docker缓存,以确保使用最新的Dockerfile指令重新构建镜像。

2023-09-08 15:23:38 4448

原创 X-Forwarded-For的客户端IP坑

让我们总结一下我们学到的一些东西、我们获得的智慧以及我们形成的观点:左边是危险,右边是信任。也许在某些情况下可以使用最左边的 XFF IP,但必须非常小心。如果有任何疑问,请使用最右边的。任何不是由您自己的反向代理设置的标头(或任何标头的任何部分)从根本上来说都是不可信的。将一个特殊的标头设置为一个有用的值,但如果它已经设置了就让它通过,这是一个糟糕的主意。(请参阅:Akamai、Fastly。如果没有普遍合理的默认值,就不应该有默认值。而“获取真实IP”是没有合理默认值的情况。

2023-09-07 15:52:12 293

转载 AWS、Azure和GCP云服务比较

人们对数字革命带来的云计算第三次浪潮并不陌生。企业需要了解这些云服务,并了解是否有更多的市场机会。数字化正被人们所接受,尤其是云计算技术。无论是因为它的可扩展性、安全性还是能够降低成本,云计算在过去十年来已经大量涌现。企业对是否选择云服务而感到困惑的日子一去不复返了,现在的困惑主要是使用哪家云服务提供商提供的云服务的问题。AWS、Azure和GCP如今成为了全球最主要的三个云服务商。

2023-09-07 14:33:55 415

原创 Java SpringBoot 项目构建 Docker 镜像调优实践

Docker 为了节约存储空间,所以采用了分层存储概念,不同镜像可以共享基础镜像的访问,关于镜像分层可以访问 Docker 官方文档的镜像分层这块知识,里面有对相关内的详细介绍,文档地址如下:Docker 镜像缓存官方文档:https://docs.docker.com/storage/storagedriver/在构建镜像的过程中 Docker 将按照 Dockerfile 中指定的顺序逐步执行 Dockerfile 中的指令。

2023-09-01 14:42:31 437

原创 Dockerfile中编译、打包、部署spring boot项目

在项目根目录执行下面命令。

2023-09-01 13:17:12 1402

转载 ICP许可证与EDI许可证

即信息服务业务通过信息采集、开发、处理和信息平台的建设,通过公用通信网或互联网向用户提供信息服务的业务。信息服务的类型按照信息组织、传递等技术服务方式,主要包括信息发布平台和递送服务、信息搜索查询服务、信息社区平台服务、信息即时交互服务、信息保护和处理服务等。

2023-08-30 13:17:01 133

原创 Dockerfile 多阶段构建参数传递

FROM 分隔了不同的构建阶段不同构建阶段必须先声明 ARG 后才能使用。

2023-08-17 16:12:01 403

原创 Dockerfile 指令 COPY 拷贝文件夹

今天在编写 dockerfile 时使用 COPY 拷贝文件夹时遇到了意料之外的情况。在此记录一下正确的使用方法。

2023-08-17 15:53:26 5379

转载 -bash: pip: command not found pip命令报错 解决方法(Centos版

报错原因:没有安装pip,装上就好啦。

2023-08-17 15:41:16 1541

转载 Nginx https反向代理502错误,proxy_ssl_server_name、proxy_ssl_verify

Nginx作用反向代理与上游服务器使用HTTPS建连时,默认不启用SNI,使用参数启用;默认不验证上游服务器返回的证书,使用开启上游证书验证后Nginx会使用配置文件中指定的CA验证上游服务器返回证书的合法性,同时也会比对证书中的CommonName信息。

2023-08-10 15:52:08 3245

转载 nginx日志分割中的kill -USR1 PID知识点

Nginx的日志分割中,涉及到一条指令:通过其他一些博客资料显示,信号量为USR1 表示重新打开文件的意思本着深入学习的念头,深入了解后,总结如下,如果不对,欢迎勘正;*******************************华丽的分割线******************************************上面的指令,包括几个知识点:1.kill命令2.信号量3.cat 跟 $() :略4.nginx.pid :略。

2023-08-03 10:43:32 371

原创 使用FreeSwitch SIP服务器构建callab.me等视频会议软件——与Kurento Media Server对比

本文介绍了我们使用 FreeSwitch (FS) SIP 服务器进行视频会议 SaaS的经验,为我们的专业用户取代了 Kurento 媒体服务器。使用 FreeSwitch 技术为其客户提供高清会议和直播首先,FS的设置和理解相比Kurento要复杂得多。因此我想先谈谈Kurento Media Server (KMS)。它是一个来自西班牙的欧洲开源项目,仍在维护且非常易于使用。它有几个教程,可让您在很短的时间内创建简单的视频会议软件。

2023-08-03 10:39:15 526

原创 记一个nginx server_name配置多个域名时的坑

server_name 指令设置基于域名的虚拟主机,⼀个ip的服务器可以配置多个域名。多个域名之间以空格分隔。nginx允许⼀个虚拟主机有⼀个或多个名字,也可以使⽤通配符"*"来设置虚拟主机的名字。nginx将按照1,2,3,4的顺序对server name进⾏匹配,有⼀项匹配以后就会停⽌搜索,类似于location指令。

2023-07-28 09:09:58 2120

转载 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别

大家在连接mysql的时候,启动项目,会警告你推荐使用com.mysql.cj.jdbc.Driver 而不是com.mysql.jdbc.Driver。当5之后的版本选择的时候,会有警告提示,替换为查看源码可知,老版本的Driver继承了新版本的Driver那么这两者到底有什么区别呢。

2023-07-27 14:51:29 537

Linux服务器架设指南——第1章

主要讲解网络硬件知识,是《Linux服务器架设指南》书的第一章

2010-05-24

c+c++程序员面试宝典.CHM

该书详细介绍了程序员面试时所需注意的事项,供大家参考学习。

2010-04-25

Linux 下sendmail邮件系统的详细配置

该文件说明了Linux下sendmail邮件系统的详细配置,为Linux初学者来说,提供了简洁的sendmail配置教程

2010-04-25

Linux 用 C实现的邮件发送程序

改程序用c语言在linux环境下编写,成功发送邮件。

2010-04-25

linux 定时发送邮件 应用sendmail技术

由于自己记性太差,很难记住朋友的生日,所以突发奇想,写了个简单的shell程序,主要目的就是为了能在固定的节日(如:圣诞、元旦等,可以指定)和朋友生日的时候自动给朋友发送祝福信件,同时密送给自己,程序虽然简单,达到了自己需要的效果。 特地共享出来和大家一起分享,修改mail_check.sh程序的变量,最好每天8点执行,显得比较真实,其它的配置文件在conf目录下。

2010-04-25

C 语言编写一个网络蜘蛛(网络爬虫)

该文档详细介绍了网络蜘蛛(网络爬虫),并附带c语言开发的爬虫代码,对爬虫初学者很有用。

2010-04-25

中文分词算法介绍、分类详解

该文档详细介绍了中文分词的原理及相应的技术。文档讲解了最大匹配法(Forward Maximum Matching method, FMM法)、正向最大匹配法(由左到右的方向)、逆向最大匹配法(由右到左的方向)、最少切分(使每一句中切出的词数最小)。

2010-04-25

中文编码基础知识介绍

该书详细介绍了GB2312、GBK、BIG5、GB18030、UTF_8字符集等编码,为编码初学者提供了详细信息。

2010-04-25

中文编码规范详细介绍

该文档详细介绍了GB2312、Unicode、UTF-8、UTF-16等编码,对初步想编码的程序呀很有帮助。

2010-04-25

spider网络爬虫源代码

这是一个spider网络爬虫源代码,用c++完成的,主要是为搜索引擎研究者提供很好的材料,为初学者提供代码。大家可以互相学习学习。

2009-01-15

Cluence搜索引擎源码

这个是c版的luence。了解搜索引擎的人都知道luence是一个很好开源搜索引擎,他开始主要是java版的,但现在为大家提供一个c版的luence ,希望对大家有用,大家互相学习学习。

2009-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除