Walt 发布的文章

背景

个人习惯,经常使用shift进行中英切换,有时候切换太快了就成了双击shift了,而Idea中双击shift会弹出全局搜索框,非常影响体验。

过程

网上搜索出来的大部分结果都是,通过registry,找到ide.suppress.double.click.handler,取消勾选的方式。
但是2021.2及之后版本是没有这一项的。

解决

  1. File-Settings 打开设置窗口。
  2. 点击左侧最下面的Advanced Settings选项卡
  3. 下拉找到User Interface栏,勾选最后一项Disable double modifier key shortcuts
  4. 应用保存即可。

背景

疫情期间需要远程办公,远程连接公司电脑便成了必须要求。然而,公司电脑也不可能时刻处于开机状态,有时候会出现关机的情况。这时候,远程开机便显得尤为重要。

设置步骤

BIOS设置

为了使用远程开机功能,您必须在系统 BIOS 中设置一些设置。

  1. 重新启动系统并按F2键,为了防止错过,可多次频繁点击F2,直到进入设置界面。
  2. 在BIOS选项中选择Power Management,进入电影管理。
  3. 展开该选项后,选择Wake on LAN/WLAN选项,根据自己的情况选择合适的方式。如果你使用vpn连接公司网络进行远程桌面,其实就是Lan方式,如果你可以在家通过公网IP直连电脑,可以选择Wan方式。不确定,选择Lan/Wan。
  4. 选择Deep Sleep Control ,禁用该选项。
  5. 应用,退出即完成BIOS设置。

网卡设置

  1. 开机进入系统,按Win+X键,选择设备管理器
  2. 在网络适配器中,找到网卡,右键选择属性。(如果你有多张网卡或者安装了虚拟机,请注意找到你的真实使用的网卡)
  3. 选择电源管理,将下面三个选项全部勾选。
    网卡电源设置
  4. 切换到高级选项卡,将等待链接唤醒模式匹配唤醒魔包链接唤醒设置都设置为启动状态。
  5. 继续在高级选项卡中,找到节能以太网(英文为:Energy-Efficient Ethernet),将其设置为禁用状态。
  6. 点击确定,完成网卡设置。
    网卡高级设置

系统设置

  1. Win+X键,选择电源选项
  2. 若是高版本的win10,进入后还需在右侧点击 其他电源设置
  3. 点击左侧,“选择电源按钮的功能”。
  4. 点击“更改当前不可用的设置”,把“启用快速启动”勾选去掉,点击保存修改。

防火墙设置

如果你的电脑开启了防火墙(默认就是开启状态),需要配置先端口确保唤醒端口被允许可以进入电脑。

  1. 邮件桌面右下角的网络图标,选择打开网络和Internet设置
  2. 下拉找到Windows防火墙。点击进入防火墙设置。
  3. 下拉找到高级设置
  4. 新开的窗口中,在左侧选择入站规则,右侧选择新建规则
  5. 弹出的窗口中,选择端口,下一步。
  6. 选择UDP,选择特定本地端口,端口号填写9
  7. 下一步,选择允许连接,下一步。
  8. 默认选择即可,最后填写规则名称,随意写一个即可

至此,所有在电脑上的设置都已经完成。

远程启动

最后要进行远程启动、唤醒的操作了。如果你权限访问路由器,很多路由器上都带有远程唤醒的工具,可以直接使用。但是如果是公司电脑,基本没有这个权限的。我们下面介绍通过手机App:WolOn来唤醒的操作步骤。

获取电脑Ip地址和Mac地址

在电脑上按Win+R,输入cmd回车,打开命令提示符窗口,输入ipconfig /all回车。找到我们网卡下的ip地址和mac地址。

添加WolOn配置

apk地址: https://apk-dl.com/wolon-wake-on-lan-widgets/com.bitklog.wolon
下载安装好WolOn软件后,打开软件,点击左下角的加号(部分版本需要再次选择局域网图标),添加一个唤醒配置。填写内容,其中:
Device name :表示名称,自己随意填写即可。
MAC Address :上一步获取的Mac地址
Broadcast Address :上一步获取的IP地址。
Select port:选择9。
其他项默认不填写即可,点击Save保存即可。
WolOn App配置

关机测试

WolOnApp上,直接点击刚刚创建的项,即可唤醒电脑。
先测试和电脑同一网络下是否可以正常唤醒。之后测试使用手机移动网络,连接公司vpn后,是否可以正常唤醒。
之后就可以愉快的在家办公,或随时随地开机了。

背景

公司部门内,配置了内网使用的域名。服务器部署完成后,nginx配置时,使用了该域名。请求后发现抛出了502 Bad Gateway

原因

查看nginx日志,发现了如下信息

2022/03/14 09:04:19 [error] 27#27: *41 no resolver defined to resolve ***.***.com, client: 10.10.60.155, server: ***.***.com, request: "POST /demo/captcha/anon/getLoginCaptcha HTTP/1.1", host: "***.***.com", referrer: "http://***.***.com/login/login"

很明显,是因为nginx无法解析该域名导致了。我们只需要让nginx能识别该域名即可。

解决方案

解决方法很简单,只需要在nginx全局配置(nginx.conf)的http项内,添加对应的dns解析即可resolver dns服务器地址;。如下所示:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    resolver 10.10.10.1; #配置dns地址
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

背景

项目采用Jenkins+Maven实现自动化部署springboot项目。本地运行正常,但是gitlab提交后,执行自动化部署过程中,出现了如下错误:

[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for  
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:14 min
[INFO] Finished at: 2022-03-14T06:17:49Z
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal on project **-server: Could not resolve dependencies for project *****:jar:1.0-SNAPSHOT: The following artifacts could not be resolved: org.apache.poi:poi-ooxml:jar:3.17, org.apache.xmlbeans:xmlbeans:jar:2.6.0: Could not transfer artifact org.apache.poi:poi-ooxml:jar:3.17 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar: Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Connection timed out (Connection timed out) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

这里的描述很清楚,本地找不到poi-ooxml包,去中央仓库下载,然后国内的网络环境下,无法在https://repo.maven.apache.org下载该包。导致了构建失败。

过程及分析

一、确认Jenkins配置是否正确

首先我想到的是maven配置问题,因为我使用的是自己部署的nexus3私库,在Jenkins-管理管理-Managed files中添加了settings.xml文件并在项目中进行了配置使用。反复检查了settings.xml文件,确认没有问题。

<!-- 检查是否添加了私库镜像 -->
  <mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://私库Ip/nexus/repository/maven-public/</url>
    </mirror>
  </mirrors>

二、nexus配置

后来想到,可能是nexus中配置的代理仓库没有修改成国内镜像。查看后发现也没有问题。nexus中添加了阿里云镜像的代理仓库。

请输入图片描述

并把其放在了靠前的位置。
请输入图片描述

三、pom.xml配置

以上检查无误后,陷入了僵局,这个问题困扰了我一整天。期间我一度想直接在本地拷贝了这个包放到Jenkins的本地仓库中,然后问题依然存在,o(╯□╰)o。
直到后来,无意中查询到, 自定义pom.xml都是继承自super pom,所以maven项目下载一些jar包时,默认会从中央仓库下载 。知道了这点,剩下的就好办了,只要在pom.xml中进行配置,覆盖掉super pom的配置即可。

<!-- pom.xml文件中添加如下配置 -->
 <repositories>
        <repository>
            <id>nexus</id>
            <url>http://nexus.dev.dhdc.com/nexus/repository/maven-public/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <url>http://nexus.dev.dhdc.com/nexus/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>

背景

因工作需要,在服务器通过docker部署了一个wiki.js服务,当初为了省事,通过docker-compose进行部署,同时把数据库连接信息也以环境变量的方式配置在了docker-compose.yml文件中了。

问题

但是最近公司重新部署了网络,数据库的服务ip地址已经发生了改变,导致wiki不能使用。
容器已经生成,修改compose文件已经没有任何意义,而这个服务已经用了很久,也不可能重新部署。这就需要一种可以动态修改容器环境变量的方式。

解决方案

好在经过查找,找到了,记录一下,以备后用。

// 查看容器id,通过以下命令,列出所有容器,记住需要修改的容器的id。
docker container ls -all

CONTAINER ID  IMAGE   COMMAND       CREATED   STATUS     PORTS   NAMES
c7266ebaf77d      requarks/wiki   "docker-entrypoint.s…"   3 months ago   Exited (137) 40 seconds ago  wiki

// 停止容器
docker stop wiki

// 停止Docker服务
service docker stop

// 修改 /var/lib/docker/containers/ID/config.v2.json 中对应的参数

// 启动Docker服务
service docker start

至此,问题解决。