Nginx处理域名后面多一个点
缘由在开发的时候遇到一个问题,就是在域名后面多加一个点的时候(例:www.csdn.net. )网站一样是能正常访问的,但是此时域却变得不一样了,所以很多请求和资源都会变成跨域的了。虽然不会有什么人去这么做,但是发现 baidu.com. 有对这个做特殊处理,所以我们也决定处理一下。
出现原因为啥会出现这样我目前也不得而知,个人觉得是在域名DNS解析层面出现的,因为我ping baidu.com 能ping通,但是我ping baidu.com.一样能ping通,由此可见DNS解析到的是同一个地址。具体原因我也不知道,望有知道的网友留言评论解惑。
解决方法虽说不知道具体原因,但是也有一些简单粗暴的方式来解决,那就是通过判断http的Host请求头来处理,在nginx中获取客户端传递的Host请求头,然后用正则判断Host请求头中是否是末尾包含点,如果包含点则返回405。
判断正则这里也是简单粗暴,直接判断 *com. *cn. 这两种结尾的域名类型,如果是以 xyz , top…等其他类型结尾的域名需要自己手动添加
1^(.*)(com|cn).$
nginx配置123456 ...
NodeMCU(ESP8266)外部中断实现按键单击-双击-长按功能
NodeMCU(ESP8266)外部中断实现按键单击-双击-长按功能2021-12-18 更新B站网友 柳桥风起 分享了一个开源库使用效果更佳,OneButton 这个库功能更齐全,可直接使用,我个人分享的还存在bug,看看就好了,这里也贴出一段个人写的demo代码,当然更推荐的是到github上看原作者代码说明
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include <OneButton.h>OneButton btn = OneButton(D3, false, false);// 记录按键按下时间uint32_t clicktime = 0;/** * 处理单击 */static void singleClick() { Serial.println("按键单击");}/** * 处理双击 */static void doubleClick() ...
NodeMcu(ESP8266)+LedControl库实现8x8点阵数字下滑显示
NodeMcu(ESP8266)+LedControl库实现8x8点阵数字下滑显示前言搞32x8的点阵时钟的过程中,想让数字下滑显示,然后搞了两天天终于搞出来,分享给大家!
视频展示废话不多说,先发一个效果视频。
硬件接线接线可参考如下接线图(不擅长画图,随便画一画):
代码这个主要是代码太绕了,脑子转不过来,这个代码主要还是使用了LedControl库,所以理论上只要能用这个库的arduino板子都是可以使用这段代码的(需要简单修改一下)
秉承不重复造轮子的思想(其实是不想自己去摸索),驱动max7219我们使用了LedControl库;这个库默认是没有的, 需要自己到库文件管理中搜索(工具->管理库->搜索LedControl->选第一个);
代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777 ...
NodeMcu(ESP8266)+LedControl库实现32x8点阵滚动显示
NodeMcu(ESP8266)+LedControl库实现32x8点阵滚动显示前言想着搞一个32x8的点阵时钟,过程中就想着要让显示内容动起来,然后搞了一天终于搞出来,分享给大家!
视频展示废话不多说,先发一个效果视频。
硬件接线接线可参考如下接线图(不擅长画图,随便画一画):
代码这个主要是代码太绕了,脑子转不过来,这个代码主要还是使用了LedControl库,所以理论上只要能用这个库的arduino板子都是可以使用这段代码的(需要简单修改一下)
秉承不重复造轮子的思想(其实是不想自己去摸索),驱动max7219我们使用了LedControl库;这个库默认是没有的, 需要自己到库文件管理中搜索(工具->管理库->搜索LedControl->选第一个);
代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 ...
深圳东西冲穿越游记
深圳东西冲穿越游记
西冲还是去年刷抖音的时候才知道的,今年刷知乎又经常刷到关于穿越西冲的文章,心里只是觉得非常远要做很久的公交所以一直都没有去尝试。上周又刷到别人的文章,刚好天气也挺好的,也就决定去试试,简单分享一下这次行程的记录。
前提准备
千万不要一个人去,因为有一定的危险性,不推荐一个人前往(大佬除外)。
选择自己合适的交通方案(自驾或者公共交通)
准备一些足量的吃的和喝的
防晒物品
好朋友
一点点现金以备不时之需(穿越过程中手机是没信号的,但是中途有卖水的)
可以的话带点药品(真的容易扭到脚)
补给出发前是做到中午没地方吃饭的打算的,所以就买好了很多零食和面包还有水之类的,我们一行三个人每个人都背一个包便能解决这个补给的问题。其实穿越的路途中还是会有买水和饮料的商家,所以如果不想背太重的东西的话是可以不买那么多水,中途卖水的会贵一点,农夫山泉是五块,饮料类的都十块左右,面包类的话出发前吃好后续只需要补充水分应该就行(因人而异)。
穿着最好是穿长衣长裤外加遮阳帽,鞋子一定要穿运动鞋而且要合脚的,不要松垮的鞋(不然特别容易扭到脚)。背包也是必须的(最好是双肩包),有很多地 ...
NodeMCU(ESP8266)使用UDP控制8x8点阵显示
NodeMCU(ESP8266)使用UDP控制8x8点阵显示前言之前写一篇关于 Arduino Max7219 案例,展示如何使用arduino+Max7219控制8x8点阵显示内容。最近恰好在搞esp8266,所以想用(esp8266+8x8点阵)做一个时钟出来, 但是无奈当时就只有一个8x8的点阵,做时钟需要一个32x8的点阵;所以就先拿这个8x8点阵试试效果。众所周知搞点阵显示是需要取模的, 但是取模毕竟是程序上的效果,并非真实的显示效果,所以我就在想为啥不能用手机来控制点阵取模, 直接就能看到效果,不满意还能直接改不用每次都写入到程序中去,说干就干。
视频展示废话不多说,先发一个效果视频。
原理其实原理比较简单;
ESP8266连接上WiFi,然后开启UDP服务,端口为1234
在同一路由器的网络下,用户通过微信小程序向esp8266广播数据
esp8266接收到数据以后就向Max7219点阵中写入数据
硬件部分关于MAX7219和8x8点阵的介绍我就不搬运了,大家有兴趣可以参考这篇文章,写的比较详细:
Arduino 学习笔记 | 单片机控制驱动MAX7 ...
NodeMCU(ESP8266) WiFi配网及保存WiFi密码信息
NodeMCU(ESP8266) WIFI配网及保存WiFi密码信息背景在我们使用智能设备时经常会看到很多设备是接入WiFi的,刚买来的时候是需要连接WiFi的,配WiFi的方式有很多种,我遇到的比较多的是smartConfig或 声纹配网,如果是有触摸屏的话很多都是屏幕上直接输入WiFi密码即可。配置完网络后我们后续的使用时都是无需再次配WiFi信息。
WiFi配网原理关于配网的原理我也是看别人的文章的,所以就不做搬运,如需了解请阅读下面这篇文章。
IoT】物联网之 WIFI 一键配网 smartConfig 浅析(ESP32)
demo视频原本想这么一个简单的东西就没必要拍视频来展示,但是代码和文字都是很枯燥的,我这种学渣看到完全提不起兴趣,驱动个人去做的更多的可能还是看到别人的创意视频吧,所以我便想着用视频的方式来展示,希望也能驱动和我一样的小白玩家不断前行。
功能讲解
先从EEPROM中获取WiFi的SSID和密码
如果已经有了SSID和密码,则直接使用SSID密码连接WIFI
如果是没有SSID和密码,则进入到配网模式
配网完成后将WiFi的SSID和密码存储到EEPR ...
Widows11优化工具
Widows11优化工具(StartAllBack)Win11的界面相比Win10变化很大,很多沿用多年的老习惯被纷纷砍下,让人特别不适应。日前一款名为StartAllBack的小工具现身网络,正如它的名字所言,它的作用就是轻松复原这些——老习惯!
StartAllBack官网地址:https://www.startallback.com/
这个我也是逛知乎的时候刷到的,具体介绍请找到原文查看,Win11改变太大不习惯?一招让Win11保留经典布局
NodeMCU(ESP8266)获取NTP时间
NodeMCU(ESP8266)获取NTP时间
很久没有搞ESP8266了,可能是这两年工作太忙了,又或者是对生活失去了斗志,所以最近又重新把两年前的东西重新收拾收拾。
NTP协议我之前有写一篇NTP 入门介绍,大家如果有对NTP不了解的,可以先查阅这篇《NTP 入门介绍》
为啥要同步时间之前看到有一个用户通过esp8266做了一个时钟出来( ESP8266物联网创意点阵时钟,女朋友看了都想要!),自己也想搞一个类似的,然后就发现他有一个功能就是网络自动校准时间,才了解到有NTP这个协议的存在,所以就找到一些代码研究了一番,所以就有了今天这篇博文。
实现思路esp8266感觉是一个很简单的东西,网上有很多的代码示例,这里我更推荐使用官方的示例库。
如何从官方的示例库中找到我们要用的示例代码:
net-client-demo
Ticker 图片ticker的使用请参考从零开始的ESP8266探索(11)-定时任务调度器Ticker使用演示
代码根据上述的示例和其他用户分享的库文件使用方法,我们稍微整理一下,把代码改成我们想要的样子。
先连接wifi
判断时间是否是正确的 ...
NTP协议入门介绍
NTP入门介绍
这篇文章除了代码部分,其他均为我从其他人文章处搬运过来的,只阐述我个人的阅读思路,读者如果看到写的不好的地方敬请谅解,可以从文章底部原文跳转查看!
概述
网络时间协议,英文名称:Network Time Protocol(NTP) 是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒), 且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。
NTP 基于 UDP 报文进行传输, 使用的UDP端口号为 123.
使用 NTP 的目的是对网络内所有具有时钟的设备进行时钟同步, 使网络内所有设备的时钟保持一致, 从而使设备能够提供基于统一时间的多种应用.
对于运行 NTP 的本地系统, 既可以接收来自其他时钟源的同步, 又可以作为时钟源同步其他的时钟, 并且可以和其他设备相互同步.
工作原理实现方式
无线时钟: 服务器系统可以通过串口连接一个无线时钟. 无线时钟接收 GPS 的卫 ...