首页
快乐星球
归档统计
留言板
友情链接
Search
1
service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误
870 阅读
2
每日签到实现
817 阅读
3
二、1.Sublime Text 3使用SublimeLinter配置JS,CSS,HTML语法检查
816 阅读
4
影评---最佳出价
807 阅读
5
ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use
780 阅读
开发
apache
nginx
Css
Laravel
Js
C#
PHP
Asp
Wordpress
微信
Html5
uni
python
环境配置
Linux
windows
MySql
数据库
Sql Server
git
wdcp
生活
工作
视频制作
阅读
登录
Search
标签搜索
看书
工作
C#
PHP
Wordpress
Laravel
Linux
Git
混淆
Uni
生活
WDCP
阅读
IIS
开发
羽化
累计撰写
135
篇文章
累计收到
22
条评论
首页
栏目
开发
apache
nginx
Css
Laravel
Js
C#
PHP
Asp
Wordpress
微信
Html5
uni
python
环境配置
Linux
windows
MySql
数据库
Sql Server
git
wdcp
生活
工作
视频制作
阅读
页面
快乐星球
归档统计
留言板
友情链接
搜索到
6
篇与
的结果
2022-05-07
jsDelivr域名上的静态资源问题
jsDelivr是什么?jsdelivr是一个大名鼎鼎的静态资源cdn加速平台,专门提供js相关的CDN,对npm,github做了加速镜像。针对npm, github提供了CDN镜像,以他免费、高速、支持github文件的特点而备受欢迎。jsDelivr为什么不行了?2021 年 12 月 20 日,jsDelivr域名备案被吊销,导致国内 CDN 提供商网宿移除了 jsDelivr 的账号。目前国内访问jsDelivr都是走国外的ip,导致了服务三天两头不稳定。jsDelivr 2022年4月28日-2022年5月5日DNS污染?国内大部分地区都无法打开jsDelivr,本人的站点也受到了影响。具体是什么情况可以查看这篇文章:https://luotianyi.vc/6295.html如何拯救假如你的网站,app,小程序,已经使用了jsDelivr的服务,那么最好提前做好准备,因为不稳定导致的服务导致自己的网站无法打开。短期方案jsDelivr有很多的CDN赞助商共同支持,每一个服务商都会有自己的专有子域名,通过替换访问资源到其他的二级域名可以恢复访问。但这些CDN普遍速度一般,而且前途并不明朗,建议仅供临时使用。CloudFlare:test1.jsdelivr.netCloudFlare:testingcf.jsdelivr.netFastly:fastly.jsdelivr.netGCORE:gcore.jsdelivr.net长期方案假如你不是开发人员,各站上只是因为插件,主题使用了jsDelivr,那就禁用这些插件,更换主题,或者通知开发者需要更新源码了。假如你是开发人员,那将jsDelivr上的静态资源全部下载下来,替换源码上的jsDelivr域名指向。1、将所有的jsDelivr上的静态资源复制到一个txt文件中2、使用python下载这些静态资源import urllib.request import requests import re, os # 基于 https://zhuanlan.zhihu.com/p/62876301 修改 def get_file(url): ''' 递归下载网站的文件 :param url: :return: ''' if isFile(url): print(url) try: download(url) except: pass else: urls = get_url(url) for u in urls: get_file(u) def isFile(url): ''' 判断一个链接是否是文件 :param url: :return: ''' if url.endswith('/'): return False else: return True def download(url): ''' :param url:文件链接 :return: 下载文件,自动创建目录 ''' full_name = url.split('//')[-1] filename = full_name.split('/')[-1] dirname = "/".join(full_name.split('/')[:-1]) if os.path.exists(dirname): pass else: os.makedirs(dirname, exist_ok=True) urllib.request.urlretrieve(url, full_name) def get_url(base_url): ''' :param base_url:给定一个网址 :return: 获取给定网址中的所有链接 ''' text = '' try: text = requests.get(base_url).text except Exception as e: print("error - > ",base_url,e) pass reg = '<a href="(.*)">.*</a>' urls = [base_url + url for url in re.findall(reg, text) if url != '../'] return urls if __name__ == '__main__': with open('list.txt', 'r') as f: lines = f.readlines() url_list = [] for line in lines: get_file(line.strip('\n'))3、运行这个py,就可以得到所有的静态文件4、将这些静态资源上传到自己的站点,或者上传到国内的CDN节点5、修改整个项目的jsdelivr的域名路径6、排查错误,查看网站控制台是否有其他错误一般使用自己的库了,肯定是有问题,因为python下载的并不是完整的库,只是下载了使用到的部分文件。根据报错的问题,再使用npm下载指定版本的完整库。然后将整个库上传到指定的资源库文件夹内,这样反复排错。直到没有错误。最后要提醒各位开发人员,尽量少使用境外服务在国内做一些法律边缘的事。使自己陷入一个危险境地,又使得一个优秀的服务无法在国内正常使用。
2022年05月07日
64 阅读
0 评论
1 点赞
2020-06-25
受到攻击,阿里云服务器被放入“黑洞”
(再次声明本人只是公司真正使用阿里云,然后遇到阿里云的问题,才分享出来,并不是要黑阿里云,只是为了让遇到相同问题的程序猿可以快速的定位到问题并解决问题)问题描述:官方访问失败,ping不通服务器,远程连接也失败,VNC可以连接到服务器。随后就收到了一条短信消息阿里云CDN被攻击放入沙箱,在这篇文章中我为了快速开启网站,就直接把域名解析到服务器,用“云锁”抵抗,但是扛不住啊。赶紧问一下客服咋回事,还好这个不像沙箱,是会被放出来的。基本上不用2.5个小时,半小时左右就能恢复
2020年06月25日
578 阅读
0 评论
0 点赞
2020-06-20
百度云加速配置阿里云服务器
大量的CC攻击,攻击百度云加速,导致网站打不开了后台一看吓死人4亿个CC攻击,一脸懵逼不是说好的百度云加速可以抗CC,抗DDOS攻击么,怎么就挂了,后来通过网络工程师的指导才知道,大量攻击导致阿里云云盾把百度CDN节点给屏蔽了。使用第三方CDN,需要在云盾或者安骑士上配置白名单,在服务器的防火墙和防护软件上也要配置白名单。
2020年06月20日
493 阅读
0 评论
0 点赞
2020-06-10
受到攻击,阿里云CDN被放入“沙箱”
(再次声明本人只是公司真正使用阿里云,然后遇到阿里云的问题,才分享出来,并不是要黑阿里云,只是为了让遇到相同问题的程序猿可以快速的定位到问题并解决问题)问题描述:官方访问失败,访问官网的成功概率被大大的降低,但是ping的通域名,而且延迟很低。立马查看了在这台服务器的其他域名,都能打开。然后一看CDN显示被放入沙箱中。什么是沙箱点这里,官方解释是我的域名遭遇到了攻击,然后为了不影响其他用户的正常加速,需要把我的域名放到沙箱减少访问(其实压根就是访问不了了)怎么解决1.花钱升级CDN为SCDN,SCDN可以防御一定的CC攻击和DDOS攻击,【两万多一个月】。反正我没有这个,太贵了,这是小公司能负担的吗?2.域名直接解析到服务器IP【不用花钱就能恢复】开始我采用了这种方法,10分钟就能解决这个问题,在服务器上安装防护软件,我是用的“云锁”,云锁可以防护CC攻击。3.换一家CDN公司,最好是带防护,价廉物美的那种。一、百度云加速(https://su.baidu.com/plan.html)价格最便宜,又是大公司,又技术保障。专业版免费试用15天二、安云网络(https://www.idc10.com/ws/buy.html)100元试用3天,客服会人性化服务,帮助解决问题三、DNS(https://www.dns.com/cdn.html)680一个月,价格也算可以那么放入沙箱还能被解封吗?答案是不能,客服说要购买他们的高仿产品才可以解封。我只想说这个答复真的很敷衍,以为别人攻击我们网站不是我们主观上的问题,却把我们永久放入沙箱了。那不是逼我买高仿产品或者换CDN商家么。这个不像服务器直接被攻击,服务器被放入“黑洞”
2020年06月10日
600 阅读
0 评论
0 点赞
2020-06-02
阿里云海外服务无法连接的问题
前两天第一次遇到,新加坡海外服务器无法连接的问题,提交阿里云工单。不得不说阿里云工单的反应速度真的很慢,建议直接骂娘,这有会触发隐藏功能“催单”1.问题描述一早起来,SSH连接不上服务器,服务器上的网站都打不开显示504超时错误。检查阿里云安全组,允许了家里的ip地址公网入内,还是不行用阿里云的Workbench连接访问也报错了。通过公网IP或者EIP访问实例需要在实例安全组白名单中增加 Workbench的服务器公网白名单: 47.96.60.0/24 118.31.243.0/24但是我就急了,立马提交工单联系阿里云客服,经过漫长的等待,客服让我VNC访问试试,果然VNC还是可以访问的。客服工程师让我提供连接的账号密码答应帮我看看,看了之后却告诉我是安全组的问题,但是我的安全组已经全部允许了,也停止了服务器的防火墙软件。又经过漫长的等待,给了我一个这么官方的答复,意思就是要我重新买一台服务器,然后将原来的服务器快照做到新的服务器上去。但是他们的意思听上去好像运营商可以恢复这个问题,我就没有在意,过了几天。两天后我发现还是没有恢复,算了要操刀自己解决了。2.客服给的解决方案使用弹性IP来解决(那怎么使用弹性IP呢?),老的包年包月的服务器是没有这个功能的,需要转换成按量计费的服务器(这个时候会退还相对于的费用的,不要慌),然后为了保留原来公网ip,需要释放原来的实例,按照步骤,保存IP地址。那么一脸问号了,释放了实例那岂不是又要重新创建实例,还好之前做过快照了,不然真的全部没了。接下来的步骤就是快照创建快照镜像创建实例,按照镜像创建实例记得不要绑定公网因为到时候要绑定到弹性IP上去,有了公网IP到时候要重新创建弹性IP,重新解绑IP,在绑定到原来的老IP上去。经过很长一段时间的折腾终于绑定到老IP上了,然后还是访问不了,网站也还是都打不开,但是VNC连接到服务器上去,却是可以ping通网站的。这个时候我急了,绕了一大圈,还是不行,我问客服怎么还是不行,客服说本来让我使用弹性ip就是为了让我换一个IP。什么玩意换个IP搞那么麻烦,这下我意识到,是我的海外服务器被墙了,因为这台阿里云海外服务器是3年第一次被墙,所以我一时还真的没有反应过来,找知道是被墙了,就像别的服务器一样,直接做镜像重新创建好了。弹性IP,就是在IP被封的情况下,可以不重新创建实例,直接更换IP,方便是挺方便但是0.73元/G,不是用弹性IP0.53元/G,难怪阿里力推我使用弹性IP了,绕了一大圈。
2020年06月02日
333 阅读
0 评论
0 点赞
2020-05-25
阿里云滑块验证,AFS验证
PHP服务端SDK集成 官方文档是这样的,但是当我们去下载PHP SDK的时候就会让我们下载alibabacloud-sdk,然后就遇到了官方文档过久的问题。前端我就不多说了,就是云盾.人机验证控制平台会生成一个HTML的滑块验证。但是HTML不太好控制,最好改成PHP,然后控制IP,user-agent,AppKey,Scene,加强验证的安全,防止模拟滑动破解。后端一般项目只要使用了阿里云的OSS或者SMS,等等都会集成AlibabaCloud,所以没有必要重新下载SDK去集成。阿里有专门的调试工具OpenAPI Explorer但是不是很新在持续更新,看到AlibabaCloud中有AFS的类但是没有使用说明,研究了一下具体写法如下。function ali_checkafs($SessionId,$Token,$Sig) { AlibabaCloud::accessKeyClient(env('ACCESS_KEY_ID'), env('ACCESS_KEY_SECRET')) ->regionId('cn-hangzhou') ->asDefaultClient(); $ret = false; try { $result = AlibabaCloud::rpc() ->regionId('cn-hangzhou') ->product('Afs') ->action('AuthenticateSig') ->format('json') ->method('POST') ->scheme('https') ->host('afs.aliyuncs.com') ->version('2018-01-12') ->options([ 'query' => [ 'SessionId' => $SessionId,// 会话ID。必填参数,从前端获取,不可更改。 'Token' => $Token,// 请求唯一表示。必填参数,从前端获取,不可更改。 'Sig' => $Sig,//签名串。必填参数,从前端获取,不可更改 'Scene' => "nc_login_h5",//云盾生成 'AppKey' => "FFFF0N000********",//云盾生成 'RemoteIp' => get_real_ip(),//IP可自动获取也可以前端给过来 ], ]) ->request(); $retArr = $result->toArray(); if ($retArr['Code'] == "100") {// 返回code 100表示验签通过,900表示验签失败 $ret = true; } else { Log::error($retArr['Msg']); } } catch (ClientException $e) { Log::error($e->getErrorMessage() . PHP_EOL); } catch (ServerException $e) { Log::error($e->getErrorMessage() . PHP_EOL); } return $ret; }
2020年05月25日
663 阅读
0 评论
0 点赞