网站底部的版权声明中显示的年份,需要每年都要改一次,若是动态显示可以免除此举。以下提供PHP和HTML实现的代码。
PHP:
<?php echo date("Y")?>
HTML通过JS实现:
<script type="text/javascript">document.write((new Date()).getFullYear());</script>
网站底部的版权声明中显示的年份,需要每年都要改一次,若是动态显示可以免除此举。以下提供PHP和HTML实现的代码。
PHP:
<?php echo date("Y")?>
HTML通过JS实现:
<script type="text/javascript">document.write((new Date()).getFullYear());</script>
Swap是Linux下的虚拟内存,也叫交换分区。当Swap使用率较高时,可通过以下方式增加其大小。
# free -mh
total used free shared buff/cache available
Mem: 31Gi 21Gi 414Mi 69Mi 9.0Gi 8.9Gi
Swap: 15Gi 15Gi 723Mi
# cd /usr
# mkdir swap
# dd if=/dev/zero of=/usr/swap/swapfile1 bs=1M count=16384
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 32.0021 s, 537 MB/s
bs=1M 表示写入的每个块的大小为1M,count=16384 表示创建大小为16384M(16GB)的Swap文件
# du -sh /usr/swap/swapfile1
16G /usr/swap/swapfile1
# mkswap /usr/swap/swapfile1
mkswap: /usr/swap/swapfile1: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 16 GiB (17179865088 bytes)
no label, UUID=386dee2a-bca6-4ca4-a943-5f01aeba9f70
# swapon /usr/swap/swapfile1
swapon: /usr/swap/swapfile1: insecure permissions 0644, 0600 suggested.
vim /etc/fstab
在末行增加以下内容
/usr/swap/swapfile1 swap swap defaults 0 0
# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 16506876 15748892 -2
/usr/swap/swapfile1 file 16777212 0 -3
显示挂载成功后大约在几分钟后在探针中显现,显现后效果如图
参考链接:https://timberkito.com/?p=98
由于要部署的项目使用Go语言开发,但现成编译好的发布包版本较旧,因此只能自行编译。编译的前提是有Go环境,以下记录Go环境在 CentOS 7 的安装过程。
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profile
source /etc/profile
source ~/.bash_profile
mkdir -p $GOPATH/src
mkdir $GOPATH/bin
mkdir $GOPATH/pkg
go version
在登录宝塔面板时一直卡在“正在登录…” 进不去,尝试了重启面板、修复面板、清除缓存、清理系统垃圾、更换设备及网络等一系列操作都没解决问题。最后执行了(22) 显示面板错误日志,发现很多错误。
本文使用的宝塔面板版本:8.0.1,系统:CentOS 7.9.2009 x86_64
宝塔面板每天会自动备份配置文件,保存在 /www/backup/panel/ 目录,最终通过恢复备份成功解决宝塔卡在正在登录的问题,以下是命令执行记录以供参考。
# bt stop
Stopping Bt-Tasks... done
Stopping Bt-Panel... done
# mv /www/server/panel/data/default.db /www/backup/default.db
# mkdir /www/backup/db/ -p
# unzip -o -d /www/backup/db /www/backup/panel/2023-08-04.zip
Archive: /www/backup/panel/2023-08-04.zip
creating: /www/backup/db/2023-08-04/
creating: /www/backup/db/2023-08-04/data/
inflating: /www/backup/db/2023-08-04/data/404.html
inflating: /www/backup/db/2023-08-04/data/default.db
# \cp -r -a /www/backup/db/2023-08-04/data/default.db /www/server/panel/data/default.db
# bt start
Starting Bt-Panel.... done
Starting Bt-Tasks... done
为什么恢复4号而不是最近的?
最近5号到8号的备份文件大小一样,可能问题就从5号开始,所以优先恢复4号的。
近期有小伙伴的域名备案被注销导致域名被阻断,随之业务受到影响,问我有什么办法能够解决。遇到这种“不可抗力”因素只能重新备案以尽快恢复业务,域名备案周期通常需要长达25个工作日,小伙伴说他的业务非常重要,想到要等1个月以后才能恢复,简直就是一场恶梦。要在短期内恢复业务,通常只有2种选择,第1种将业务迁移到境外服务器,第2种更换已备案的业务域名,但由于业务环境复杂,无论采取哪种方法对业务的影响仍然不小。通过我的尝试得出一套方案可以在不迁移业务又不更换业务域名的情况下恢复业务。
IDC是如何对域名进行阻断的?
域名被阻断需要及时恢复访问,要突破阻断首先需要了解IDC是如何对域名进行阻断的。访问网页时服务器会接收到host,这个host通常就是域名,在数据到达服务器之前一定会通过IDC的网关,IDC在网关部署了类似防火墙的服务对host进行过滤,如果host是被阻断对象则进行阻断。
如何突破域名阻断?
了解了域名是怎么被阻断的,就知道只要访问时不让host经过IDC网关即可。首先在服务器建立新站点,该站点绑定可正常访问的域名(以下称为A站点或A域名)。A站点反代到被阻断域名站点(以下称为B站点或B域名),切记目标地址不要使用B域名,建议使用127.0.0.1,发送域名填B域名。此时访问A域名时可正常访问B站点,但我们需要访问B域名时也能访问,怎么办?
众所周知,域名解析绑定到境外服务器是不需要进行备案的,当然也不会被阻断。经实践测试,将B域名解析绑定到境外服务器上,并设置反代到A站点后完美突破域名阻断,恢复业务正常进行。
相关问答
Q:为什么不直接迁移业务到境外服务器?
A:迁移到境外服务器首先得新购境外服务器,将会有额外开支,同时现有服务器将被闲置造成资源浪费;项目中接入了众多业务域名,一旦迁移则牵一发而动全身,如何保证平滑迁移是一项考验;从长远来看使用境外服务器不仅成本更大,线路质量和稳定性都远远不如使用境内服务器;综上因单个域名被阻断就把业务迁移到境外显然是不具性价比的。
Q:为什么不更换业务域名?
A:一旦更换业务域名,所有涉及该域名的地方全部需要更换,有些服务短期内可能仍然会有影响,例如更换小域名接口域名需要重新提交审核才能生效,期间业务仍会受到影响。
Q:可否直接在境外服务器部署站点进行反代?
A:直接反代仍然会被拦截阻断,这是由于反代服务器访问源站时仍然使用了被阻断域名的host。
Q:可否反代时发送其它域名的host?
A:如果业务中没有host绑定(例如授权系统通过域名进行授权),可在反代时发送其它域名,可省去建立站点A的步骤,站点A的作用类似于跳板机。
写在最后
本文提供的思路和解决方案虽然能够应急使用,但境外服务器的访问速度及稳定性不如境内服务器,肯定会影响访问体验,域名没有备案的影响就如同没有身份证,影响面还不止限制接入,所以业务域名一定要维护好备案,比如近期管局要求网站底部规范地添加网站备案号,要及时按照要求添加,千万不可任性,避免备案被注销后导致网站被限制接入的情况。
对文件进行hash值校验可以判断一致性,通常我们需要下载工具进行校验。其实Windows自带hash值校验功能。
打开cmd,执行以下命令即可。
certutil -hashfile yourfilename.ext MD5
certutil -hashfile yourfilename.ext SHA1
certutil -hashfile yourfilename.ext SHA256
近期在服务器上修改DNS后发现只要重启就会被还原,后来查看/etc/resolv.conf才发现是NetworkManager搞的鬼,解决办法很简单,修改完DNS后运行下面命令即可。
sudo chattr +i /etc/resolv.conf
近期接连收到RDS和ECS的使用率异常报警,通过日志发现都是搜索引擎蜘蛛爬虫爬了搜索页地址,而这些搜索词都是违规词,通过搜索这些关键词发现有许多站点中招,其目的是为了在搜索引擎进行非法推广。
遂决定关闭WordPress搜索功能,只需在当前主题的 functions.php 文件里加入以下代码即可。
//禁用WordPress前台搜索功能 function disable_search( $query, $error = true ) { if (is_search() && !is_admin()) { $query->is_search = false; $query->query_vars['s'] = false; $query->query['s'] = false; if ( $error == true ) // 执行搜索后显示的错误页面 // $query->is_home = true; //跳转到首页 $query->is_404 = true;//跳转到404页 } } add_action( 'parse_query', 'disable_search' ); add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
网上找到的代码大都是不兼容PHP7的,经测试以上代码是支持PHP7的。
代码出处:https://zmingcx.com/disable-wordpress-search.html
打开 软件管理 > Nginx > 设置 > 配置修改;
查找#include luawaf.conf;,去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx即可开启。
可以试着访问 http://你的网址/?id=../etc/passwd,如果页面弹出拦截提示即表示开启成功!
一般来讲默认开启即可发挥拦截作用,如需修改规则可在/www/server/nginx/waf/config.lua自行修改。
RulePath = "/www/server/panel/vhost/wafconf/"
--waf 详细规则存放目录(一般无需修改)
attacklog = "on"
--是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)
logdir = "/www/wwwlogs/waf/"
--攻击日志文件存放目录(一般无需修改)
UrlDeny="on"
--是否开启恶意 url 拦截
Redirect="on"
--拦截后是否重定向
CookieMatch="off"
--是否开启恶意 Cookie 拦截
postMatch="off"
--是否开启 POST 攻击拦截
whiteModule="on"
--是否开启 url 白名单
black_fileExt={"php","jsp"}
--文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名
3"……} ipWhitelist={"127.0.0.1"}
--白名单 IP,如有多个则用英文逗号分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同
ipBlocklist={"1.0.0.1"}
--黑名单 IP
CCDeny="off"
--是否开启 CC 攻击拦截
CCrate="300/60"
--CC 攻击拦截阈值,单位为秒。"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑
修改默认访问的站点配置文件,在server_name下方添加以下代码即可。
return 408;
当然改成502、403等其它状态码都可以,如果想把这部分流量导入到指定网站,添加以下代码即可。
rewrite ^(.*) https://www.jiangdefu.com permanent;
若要禁止HTTPS访问,添加监听端口443并配置任意的SSL证书即可。