<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>聂峰军个人博客</title>
<link>https://niefengjun.cn</link>
<description>专注于Web开发/nodejs/技术分享</description>
<language>zh-CN</language>
<lastBuildDate>Sat, 20 Jun 2026 09:00:49 GMT</lastBuildDate>
<atom:link href="https://niefengjun.cn/blog/rss.xml" rel="self" type="application/rss+xml"/>
<item>
<title>守正本固根基，失本体无长远</title>
<link>https://niefengjun.cn/blog/mq3ad5fhxfnsmytktf.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/mq3ad5fhxfnsmytktf.html</guid>
<pubDate>Sun, 07 Jun 2026 04:32:39 GMT</pubDate>
<author>admin</author>
<category>yuanchuang</category>
<description> 题目：本体未失 阅读下面的材料，根据要求写作。（60分）“日月不失其体，故蔽而复明；江汉不失其源，故穷而复通。”在个人成长、社会发展乃至文明演进中，总会出现困顿、挫折，甚至会有风高浪急、惊涛骇浪的考验。然而，日月虽有被遮蔽之时，只要本体未失，终能重放光明；江河即使遭遇险阻，只要源头不竭，终能贯通入海。以上材料引发了你怎样的联想和思考？请写一篇文章。要求：选准角度，确定立意，明确文体，自拟标题；不要套作，不得抄袭；不得泄露个人信息；不少于800字。&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbs...</description>
</item>
<item>
<title>nodejs是什么？</title>
<link>https://niefengjun.cn/blog/mpnat7of9ynw4yza8ut.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/mpnat7of9ynw4yza8ut.html</guid>
<pubDate>Wed, 27 May 2026 00:00:49 GMT</pubDate>
<author>admin</author>
<category>nodejs</category>
<description>Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型，使其轻量又高效。
简单的说 Node.js 就是运行在服务端的 JavaScript，利用JavaScript在服务端进行编程。
Node.js是一个让JavaScript运行在服务器端的开发平台，它让JavaScript的触角伸到了服务器端，可以与PHP、JSP、Python、Ruby平起平坐。
Node.js不是一种独立的语言，与PHP、JSP、Python、Perl、Ruby的“既是语言，也是平台”不同，Node.js使用JavaScri...</description>
</item>
<item>
<title>分析一下niefengjun.cn</title>
<link>https://niefengjun.cn/blog/mpm32bb50yx3lgbro82q.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/mpm32bb50yx3lgbro82q.html</guid>
<pubDate>Tue, 26 May 2026 03:36:11 GMT</pubDate>
<author>admin</author>
<category>yuanchuang</category>
<description>一、域名基础信息（niefengjun.cn）注册商：阿里云计算有限公司（万网）注册时间：2012-05-31（14 年老域名）到期时间：2034-05-31（长期持有）DNS 服务器：dns17.hichina.com、dns18.hichina.com（万网 DNS）备案号：京 ICP 备 14006617 号 - 1（北京备案，合规）SSL 证书：Let’s Encrypt DV，有效期至 2026-07-22二、服务器与网络IP 地址：39.106.9.216（阿里云，北京）Web 服务器：Nginx/1.24.0解析速度：平均 42.5ms，无 IPv6 支持安全状态：未被微信 / ...</description>
</item>
<item>
<title>理解HTTP协议中的Cookie及其与Session的区别</title>
<link>https://niefengjun.cn/blog/ef6312ffd1c95da1f3f67749c0de613e.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/ef6312ffd1c95da1f3f67749c0de613e.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>nodejs</category>
<description>
Cookie和Session都是为了解决HTTP协议的无状态问题，存储HTTP通讯中客户端与服务器之间的会话状态。不同的是Cookie依赖HTTP请求头与响应头实现且存储在客户端，而Session存储在服务器端，Session可以通过Cookie实现，也可以使用URL回写的方式实现。

	HTTP的无状态性
	
		1.1 HTTP无状态带来的问题
		1.2 无状态问题的解决
	
	
	Cookie
	Session

1. HTTP的无状态性
1.1 HTTP无状态带来的问题
HTTP协议是无状态的，客户端(浏览器)与服务器之间基于请求-响应实现数据交互，响应结束后两者之间的连接就会断开...</description>
</item>
<item>
<title>成熟度模型-REST的实现步骤</title>
<link>https://niefengjun.cn/blog/29fbae9861d0e20ebc8fc8d2ed2e9657.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/29fbae9861d0e20ebc8fc8d2ed2e9657.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
最近看Sam Newman的“微服务设计”，其中提到了Martin Fowler的Richardson Maturity Model一文，简单翻译如下，以方便以后查阅。

  Level 0-资源（Resources）
  Level 1-资源（Resources）
  Level 2-HTTP动词（HTTP Verbs）
  REST层级的意义

Leonard Richardson提出的一个模型，将实现REST方法的主要元素分解为三个步骤，分别包括：资源（Resources）、HTTP动词(HTTP Verbs，如GET、POST等)和超媒体控制（Hypermedia Controls）...</description>
</item>
<item>
<title>基于 GitLab、Docker 实现Node环境的CI\CD</title>
<link>https://niefengjun.cn/blog/99831a13e8e3c386605788d0db6eb80c.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/99831a13e8e3c386605788d0db6eb80c.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>


  


















...</description>
</item>
<item>
<title>位运算和权限控制</title>
<link>https://niefengjun.cn/blog/5e042f5a208f7635e751ed8ad90de895.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/5e042f5a208f7635e751ed8ad90de895.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
在Linux文件系统中，用户对文件或目录有：读、写、执行三种权限，分别使用数字：4、2、1三个数字。三者之间可任意组合，如：用户拥有所有权限，则用数字7表示（4+2+1=7）;用户拥有读、写权限则用数字6表示（4+2=6）。可以看出，基于数字加减的权限设置在使用中非常便利。其对权限的控制，本质上是基于位运算实现的。掌握位运算，不仅可以更加深入的理解Linux权限控制，更可以在自己项目中实现简单高效的、基于位运算的权限管理系统。


	Linux基于位运算的权限控制
	或运算实现权限的添加
	与运算实现权限的判断
	非运算实现权限的减少
	位移与权限码


1. Linux基于位运算的权限控制...</description>
</item>
<item>
<title>ssh-keygen实现基于SSH密钥的SSH、SCP无密码登录</title>
<link>https://niefengjun.cn/blog/3a11dcd6d7171c6037240992a05aea95.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/3a11dcd6d7171c6037240992a05aea95.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
	


	SSH为远程登录及会话提供了安全保障，通过ssh-keygen创建SSH 密钥可以实现本地机与服务器，或两台服务器之间的无密登录。


	
		操作准备 
	
	
		本地机操作 
	
	
		服务器操作 
	
	
		无密码登录 
	


	


	1. 操作准备


	简单的说，通过SSH 密钥可以使用两台电脑之间的安全无密码登录。在本文，通过本地机和服务器做操作演示，实现了本地机无密码登录远程服务器。


	实现无密码登录，需要完成以下操作：


	
		本地机使用ssh-keygen命令创建SSH公钥和私钥。
	
	
		服务器使用ssh-keygen命令创建SSH公钥和私...</description>
</item>
<item>
<title>profile、bash_profile、bashrc文件的作用与区别</title>
<link>https://niefengjun.cn/blog/12339d9cd86118bd88e942fcefaa59fb.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/12339d9cd86118bd88e942fcefaa59fb.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
profile、bash_profile、bashrc三个文件在Linux或类Unix系统（如：Mac）系统中经常会用到，在本篇文章中我们将介绍这三个文件的作用。


	profile文件
	
		1.1 profile文件的作用
		1.2 在profile中添加环境变量	
	
	
	bashrc文件
	bash_profile文件

1. profile文件
1.1 profile文件的作用
profile（/etc/profile），用于设置系统级的环境变量和启动程序，在这个文件下配置会对所有用户生效。当用户登录（login）时，文件会被执行，并从/etc/profile.d目录的配置...</description>
</item>
<item>
<title>OAuth2.0 授权框架</title>
<link>https://niefengjun.cn/blog/7274828a31231c457b7649a747671a14.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/7274828a31231c457b7649a747671a14.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
OAuth2.0是在互联网中广泛使用的一个授权协议，该规范用于取代OAuth1.0，但2.0并不兼容1.0。OAuth2.0的协议标准为：RFC 6749，实现非常简单清晰。OAuth2.0用于授权第三方应用，获取对受限制HTTP服务的访问权限。我们在网页或Web中常见“QQ登录”、“微博登录”、“微信登录”等，都是OAuth2.0规范实现。

	

1. 简介
在传统的客户端-服务器认证模式中，客房端要访问受限制(受保护)的资源，服务器需要验证资源所有者的凭据。为了提供第三方应用所访问的受限资源，资源所有者需要与第三方共享凭据。这样，势必会带来一些问题和局限性：

	第三方应用为了之后能够...</description>
</item>
<item>
<title>node-gyp 编译 addon 时使用的 .gyp 文件格式</title>
<link>https://niefengjun.cn/blog/b613658fce05d42eed2b21ade7b3152e.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/b613658fce05d42eed2b21ade7b3152e.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
Node.js基于GYP（Generate Your Projects）构建C\C++插件，在编译插件前需要编写一个.gyp配置文件，该文件相当于CMake中使用的CMakeLists.txt。

	介绍
	一个典型的Chromium.gyp文件结构
	.gyp文件中典型的可执行目标(executable target)的结构
	.gyp文件中典型的库目标(library target)的结构
	一些用例
		
			5.1 添回一个新的源文件
			5.2 添加一个新的可执行目标
			5.3 向目标中添加设置
			5.4 交叉编译
			5.5 添加一个新库
			5.6 两个目标之间...</description>
</item>
<item>
<title>Markdown 语法快速入门</title>
<link>https://niefengjun.cn/blog/35651467202a8df78c56826f79561c1e.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/35651467202a8df78c56826f79561c1e.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
Markdown 是一种轻量级的「标记语言」，其语法目标是成为一种适用于网络、易读易写的语言。Markdown 的语法非常简单，常用的标记符号总共不超过十个，相对于HTML 标记语言来说，Markdown 是十分轻量的，学习成本也相对更低。Markdown 格式的文档以纯文本形式发布，它的语法由一些符号所组成，这些一目了然符号让我们更专注于文字的内容而不是排版和样式。


	段落、标题、区块代码
	修饰与强调
	列表
	链接
	图片
	代码


本文提供了一些Markdown 常用的语法及对应的HTML输出，旨在帮助人们快速了解和使用Markdown。
1. 段落、标题、区块代码
1.1 段...</description>
</item>
<item>
<title>Mac及CentOS下安装OpenCV</title>
<link>https://niefengjun.cn/blog/f07f15607c9aed605b313e5f3a0c02e0.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/f07f15607c9aed605b313e5f3a0c02e0.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
OpenCV是一个开源跨平台计算机视觉库，其基于BSD开源许可发布。它提供了C++、C、Python、Java等语言的调用接口，可以在Windows、Linux、Mac OS、iOS、Android等操作系统中运行。因为需要调用一个基于OpenCV的图像识别算法，顺便整理一下Mac及CentOS下OpenCV 2.4的安装配置。

	Mac安装OpenCV
		
			Homebrew安装简单介绍如下
			以下是编译安装OpenCV的过程
			Xcode中使用OpenCV
		
	
	Linux CentOS 7 安装OpenCV
		
			2.1 安装依赖库
			2.2 安装FFm...</description>
</item>
<item>
<title>站点升级HTTPS及升级时的一些注意事项</title>
<link>https://niefengjun.cn/blog/0c23693c86f706455ad0cdaeadf2b076.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/0c23693c86f706455ad0cdaeadf2b076.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
HTTP/2只能在HTTPS环境下使用、苹果开始限制HTTP版本的API，种种迹象表明升级HTTPS将是一种趋势，HTTPS也是提升网站可信度、增加信息传输安全的重要手段。本文将对站点HTTPS流程及网站升级的一些注意事项，做一些简单整理介绍。

	获取证书
	
		1.1 证书作用
		1.2 获取证书
		1.3 证书类型
	
	
	安装证书
	升级HTTPS时的注意事项
	
		3.1 站点静态资源同样需要使用https连接
		3.2 SEO元素使用HTTPS
		3.3 配置301重定向
		3.4 其它
	
	
	网站升级HTTPS时的一些疑问

1. 获取证书
1.1 证书作用...</description>
</item>
<item>
<title>HTTPS构建安全通讯、HTTPS通讯流程</title>
<link>https://niefengjun.cn/blog/b58b388106202b9a2fa9c974dcea5847.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/b58b388106202b9a2fa9c974dcea5847.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
HTTPS（Hyper Text Transfer Protocol over Secure Socket Layer），即：安全套接字层上的HTTP协议，简单的说就是安全的HTTP协议。相比HTTP来说，HTTPS使用TLS/SSL对传输层数据进行加密，并使用CA证书对站点身份进行认证，所以其相对更安全。

	HTTPS概述
	HTTP的问题与方案
	
		2.1 HTTP的问题
		2.2 HTTPS所解决的问题
	
	
	HTTPS（TLS/SSL）通讯流程

1. HTTPS概述
在HTTP协议通讯过程中，客户端（浏览器）和服务器之间以明文的形式进行信息传递。由于没有数据加密及身份验...</description>
</item>
<item>
<title>gyp 文件输入格式参考</title>
<link>https://niefengjun.cn/blog/07fba3d9f33910a7725032b94b46c631.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/07fba3d9f33910a7725032b94b46c631.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
GYP（node-gyp）基于.gyp文件构建C/C++插件，除文件结构外，.gyp还应遵守一定的语法规则。

	原始类型
	总体结构
		
			2.1 注释（#）		
		
	
	合并
		
			3.1 合并基础（=、?、+）		
		
	
	路径名相关
	单例列表项
	包含其他文件
	变量与条件
		
			7.1 变量
			7.2 默认值变量（%）
			7.3 预定义变量
			7.4 用户定义变量
			7.5 变量扩展（、&gt;、、&gt;@）
			7.6 命令扩展（!、!）
		
	
	条件语句
	变量扩展的时机及条件
		
			9.1 早期和晚期
			9.2 扩展和评估同时...</description>
</item>
<item>
<title>Google protobuf（Protocol Buffers）数据交换协议介绍</title>
<link>https://niefengjun.cn/blog/eee48d1114ef46857ebefca789323486.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/eee48d1114ef46857ebefca789323486.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>

	protobuf简介
	
		1.1 什么是protobuf
		1.2 protobuf格式的优劣
	
	
	怎么样使用protobuf
	
		2.1 编译器安装
		2.2 运行时环境安装
		2.3 使用
	
	
	protobuf使用示例
	
		3.1 定义.proto文件（消息格式）
		3.2 编译proto文件
		3.3 消息读写
	
	

1. protobuf简介
1.1 什么是protobuf
protobuf（Protocol Buffers），是Google推出的一个的结构化数据交换协议，用于传递自定义的消息格式，
可用于同一台机器上的进程间、不同设备进程间...</description>
</item>
<item>
<title>Redis 键(Key)的操作命令</title>
<link>https://niefengjun.cn/blog/269922879b67cc6f3f1af4bff0c29876.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/269922879b67cc6f3f1af4bff0c29876.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
在Redis 数据库中，我们除了经常操作数据类型外，键Key操作也是Redis 中非常重要和常用的的操作。Redis 提供很多键管理相关命令，如：可以通过KEYS命令查找键、EXPIREAT可以设置键的过期时间、RENAME命令可以对键进行重命名。

	查找、删除
	
		1.1 KEYS - 查找键
		1.2 EXISTS - 判断key是否存在
		1.3 RANDOMKEY - 随机返回一个key
		1.4 TYPE - 返回值类型
		1.5 SORT - 排序
		1.6 DEL - 删除key
	
	
	重命名
	
		2.1 RENAME - 重命令
		2.2 RENAM...</description>
</item>
<item>
<title>Redis 配置为 Service 系统服务</title>
<link>https://niefengjun.cn/blog/8e12680c2ab8828a8b106d24a69bb9ec.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/8e12680c2ab8828a8b106d24a69bb9ec.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>
在Linux中，将程序配置为服务后，就可以使用service命令对系统服务进行管理，如：start（启动）、stop（停止）、restart（重启）等。Redis安装后默认不会配置为系统服务，本文将介绍Redis配置为服务的方法。


	复制redis_init_script文件
	编辑redis文件
	注册系统服务
	rc.local与service服务


1. 复制redis_init_script文件
将utils/redis_init_script文件复制/etc/rc.d/init.d/目录，并重命名为redis：
cp utils/redis_init_script /etc/...</description>
</item>
<item>
<title>Redis 数据类型之集合(Set)类型</title>
<link>https://niefengjun.cn/blog/d0b21211ed96da6864ab6465970737ca.html</link>
<guid isPermaLink="true">https://niefengjun.cn/blog/d0b21211ed96da6864ab6465970737ca.html</guid>
<pubDate>Tue, 19 May 2026 02:44:48 GMT</pubDate>
<author>niefengjun</author>
<category>itbiji</category>
<description>

	集合(Set)类型
	集合类型中的命令及使用
	
		2.1 元素添加、成员判断
		
			2.1.1 SADD - 添加元素
			2.1.2 SCARD - 集合元素数
			2.1.3 SMEMBERS - 返回集合中成员
			2.1.4 SISMEMBER - 判断元素是否是集合成员
		
		
		2.2 获取集合元素、元素移除
		
			2.2.1 SPOP - 随机返回并移除一个元素
			2.2.2 SRANDMEMBER - 随机返回一个或多个元素
			2.2.3 SREM - 移除指定的元素
			2.2.3 SREM - 移除指定的元素
		
		
		2....</description>
</item>
</channel>
</rss>