Nginx
{lamp/}
{card-describe title=" 背景介绍 "}

家里的宽带申请了公网ip并设置ddns,为了隐藏端口和添加ssl证书,所以在阿里云的VPS上使用宝塔面板添加了nginx反向代理,但是时间一长就发现一但换了ip,nginx反代就失效了
{/card-describe}

经过上网搜索资料,找到了一个解决办法 在这里记录一下: 原文链接

{message type="info" content="原因总结"/}

大概率是nginx机制的问题,直接将ddns解析地址写入反带规则话 proxy_pass 域名 ,只会在启动时候进行dns解析一次,后期域名更换了ip的话,是不会更新解析的,可以设置下解析服务器和dns缓存时间,然后把域名放到变量内,应该能解决问题

resolver 8.8.8.8 valid=30s;
 
set $proxy_host "http://example.com";
 
location / {
    proxy_pass $proxy_host;
}

更换主路由的具体说明和功能需求

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

原先使用的是Asus AX86u 作为主路由,使用了ddns和端口转发,把部分私人服务开放到互联网。前段时间入坑了All in one 小主机,想将虚拟机里的openWRT作为主路由,想要维持原有的功能不变,遇到了不少坑,遂写下此文。

问题描述及原因剖析

Windows 打开文件时选择打开方式 -》选择其他应用 -》时供选择的应用列表中出现无效应用。

比如我在打开一个 “.py” 文件时,选择其他应用时出现了一个已经删除的应用。

值得注意的是我在删除应用时,并非运行的 uninstall 文件,而是直接进目录删除的文件,因此注册表中将会残留着在安装或使用此软件时生成的注册信息。(在 Windows 系统中要成功一个卸载应用,一般除了删除文件之外,还要清理注册表信息,否则在后续的使用过程中可能会出现一些问题,比如现在我这样。)删除或开发商文件和清理注册表信息一般运行软件开发者提供的 uninstall 文件即可(也有可能软件开发者忘记清除注册表或删除某些文件,软件在设计卸载程序时存有 bug,不过这种情况一般比较少见)。

知道了问题原因,那么我们就可以去解决了。

解决方案

第一步:运行 “regedit” 命令,打开注册表编辑器。

第二步:搜索关键字,比如我这里搜索 “C:\Users\zj175\AppData\Local\Programs\Microsoft VS Code Insiders\Code - Insiders.exe""%1"”,当然也可以搜索“VS Code Insiders”,因为“VS Code Insiders” 这个应用我已经删除了,不需要保留有关它的任何注册信息。

第三步:可以看到 “py_auto_file” 文件夹下面只有一个 “shell” 文件夹,“shell”文件夹下面只有一个 “open 文件夹”,“open” 文件夹下面只有一个 “command” 文件夹,“command”文件夹下面只有一个键值对,值里面存储的目标文件正是我已经删除过的应用。因此,我们只要删除这个键值对就行了。不过我这里直接删除的是 “py_auto_file” 文件夹,为什么这样,可以参考下一步,删注册表之前记得备份,怎么备份参考下下一步。另外在搜索的时候可能有不止一个结果,也就是说你要删很多注册信息,因此我们要一直搜索一直删,直到显示注册表搜索完毕为止(当然为了确保没有忘记删除,也可以再搜一遍,看是否还有)。

第四步:鼠标右击选中这个键值对后,左键点击会出来一个删除的选项,删除就行了。考虑到删除这个键值对后,“command”文件夹将变成空文件夹,所以我们也可以直接把 “command” 文件夹删除,同样是右击选中,左击调出删除的选项,然后删除。又考虑到删除 “command” 文件夹后,“shell”文件夹变成了空文件夹,所以我们可以直接把 “shell” 文件夹删除。考虑到删除 “shell” 文件夹后,“py_auto_file”文件夹变成了空文件夹,所以可以直接把 “py_auto_file” 文件夹直接删除,因为这样的空文件夹除了浪费存储空间外,我感觉它没有任何其他意义。

第五步:删之前记得备份注册表(不用备份整个注册表,删哪个备份哪个就行),就比如你要删除硬盘中的某个文件,为了预防不测,只需要备份所删除的文件就行了,不需要吧整个硬盘做一下备份(浪费时间,浪费存储空间)。

比如我这里要删除的是 “py_auto_file” 文件夹,左键点击选中,右键调出导出选项,接着左键点击导出即可。恢复的话双击导出的备份文件,然后问你要不要继续,点击 “是” 即可。

备份图:

{lamp/}

{callout color="#f0ad4e"}去除BT宝塔面板的强制登陆限制要求
{/callout}

  • 安装BT宝塔面板完成后登陆SSH,输入法如下命令
sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
  • 最新版BT宝塔面板据说光输入上面的命令还不行,说新版多了个bind页面,因此还需要再输入如下命令
rm -rf /www/server/panel/data/bind.pl

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

{callout color="#f0ad4e"}
还原BT宝塔面板的强制登陆限制要求
{/callout}

sed -i "s|if (bind_user == 'REMOVED') {|if (bind_user == 'True') {|g" /www/server/panel/BTPanel/static/js/index.js

{message type="info" content="有的小伙伴使用命令后还没有变化,这个时候需要按Ctrl+F5的组合键强制刷新浏览器,因为有可能之前读取的是浏览器缓存,刷新后即可。"/}