主页

Nginx创建Google镜像站

步骤如下: 在宝塔面板中创建Google的Nginx反代www.google.com.hk 配置SSL证书并保存,启用HTTPS 配置upstream设置 通过如下方式获取google的不同ip dig www.google.com @8.8.8.8 +short 将类似如下配置文件配置好 upstream www.google.com.hk { ip_hash; server 108.177.125.199:443; server 64.233.189.199:443; ...

阅读更多

Nginx+HTTPS+CDN出现网站重定向的解决方案

前言 ​ 在部署好了CloudReve和Nginx以后,想通过Cloudflare的免费的CDN服务来达到一个节省流量的目的,但是在直接开启CDN代理之后发现原本的网站一直出现Network Error的问题,在此记录一下解决方案。 ​ 首先记录一下现状: CloudReve部署在自己家的服务器上,通过ZeroTier和香港的服务器虚拟局域网相连,并且通过Nginx反代 Nginx配置好了SSL证书,开启了强制使用HTTPS链接 ​ 测试的现状: 在开启强制HTTPS链接的时候使用CDN加速,连接CloudReve的时候会出现Network Error,网页控制台报错重定向次数过多。 关闭强制HTTPS链接使用CDN加速并且通过HTTPS进行链接的时候正...

阅读更多

Linux使用RSA密钥登入并关闭密码登入

生成密钥 在客户端电脑上输入以下指令生成rsa私钥和公钥 ssh-keygen -t rsa -C "your@email.com" 生成一对以你的邮箱为标签的密钥 在/.ssh/文件夹下的id_rsa为密钥文件,id_rsa.pub为公钥文件 在Linux服务器下添加密钥 在当前用户的主目录中的/.ssh/中添加或者修改authorized_keys文件,将刚刚客户端的id_rsa.pub内容复制到authorized_keys中 关闭密码登入,并且只用RSA登入 编辑sshd_config文件 vi /etc/ssh/sshd_config 禁用密码验证 ...

阅读更多

C++二分查找

代码模板 int bsl(int l, int r) //返回左边界 { while (l < r) { int mid = l + r >> 1; if (check(mid)) //每次正确右边界都向左缩小 r = mid; else l = mid + 1; //mid不正确,弃用mid并且缩小区间 } return l; } int bsr(int l, int r) //返回右边界 { while (l < r) { int mid = l + r + 1 >> 1; ...

阅读更多

CloudReve私有网盘部署

预先准备 安装好宝塔面板,并且预先安装好LNMP环境 Aria2离线下载配置 在FreeSSL上获取SSL证书和密钥 CloudReve部署 安装CloudReve 前往官方库下载最新版的对应系统的可执行文件 在BT面板内添加网站CloudReve,并且设置对应的域名和根目录(下图为示例) 将可执行文件上传到在宝塔面板设置的根目录中,并cd到当前目录 运行CloudReve,并记录初始的账号密码 chmod +x ./cloudreve ./cloudreve 登入http://ip:5212,在控制面板中修改默认的管理员账号和密码 ...

阅读更多

Ubuntu配置wol

安装网络管理工具 sudo apt install ethtool 查询网口信息 ip a 记录需要启动的网口名字 通过指令手动启动wol服务 ethtool -s [INTERFACE] wol g 查询是否成功 ethtool [INTERFACE] 输出信息中如果显示wol:g则代表开启成功 创建开机进程 sudo vi /etc/systemd/system/wol.service 写入以下内容 [Unit] Description=Configure Wake On LAN [Service...

阅读更多

C++逆序对

代码模板 typedef long long LL LL merge(int l,int r) { if(l==r) return 0; int mid=l+r>>1; LL ans = merge(l,mid)+merge(mid+1,r); int i=l,j=mid+1,cnt=0; while(i<=mid&&j<=r) { if(q[i]<=q[j]) tmp[cnt++]=q[i++]; else { tmp[cnt++]=q[j++]; ans+=mid-i+1; } }//统计 //扫尾 while(i<=mid) tmp[cnt++]=q[i++]; while(...

阅读更多

C++中的归并排序

代码模板 void merge_sort(int q[],int l,int r) { if(l>=r)return;//递归终止条件 int mid=l+r>>1;//取中间值 merge_sort(q,l,mid); merge_sort(q,mid+1,r); //递归分治 int cnt(0),i(l),j(mid+1);//cnt为tmp数组中的指针,i和j为需要归并的两个范围指针 while(i<=mid&j<=r) if(q[i]<q[j]) tmp[cnt++]=q[i++]; else tmp[cnt++]=q[j++];//指针对比,将更小的数值移入临时数组tmp当中 while(i<=...

阅读更多