分类 Linux 下的文章

今天突然发现向我的服务器提交代码非常慢,巨慢,然后测试版的应用请求响应也非常慢,一开始以为是网络问题,但登录服务器一看,发现 CPU 很忙。

2核2G 的 Ubuntu,load average: 1.93, 0.99, 0.55。

排名第一的进程是 kswapd0,问了一下 kimi,得到的回答是:

kswapd0 是 Linux 系统中的一个内核线程,主要负责虚拟内存管理中的换页操作。当系统的物理内存不足时,kswapd0 会执行换页操作,将一些不常用的内存页从物理内存移动到磁盘上的交换空间(swap space),以释放物理内存供其他进程使用。这个过程会消耗大量的 CPU 资源,因此如果 kswapd0 进程占用 CPU 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。

- 阅读剩余部分 -

修改 Nginx 配置时,报错:

$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。

我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。

所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。

如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。

grep -r "crowall.com" /etc/nginx/sites-enabled/

-r 表示如果下面有子目录也会扫描。

执行完就可以看到冲突的两个配置文件了,非常方便。

国内的服务器有个蛋疼的问题:下载一些国外的依赖时非常慢甚至被墙。

比如 github 上的那些开源软件,下载速度只有十几K,甚至下不了。
再比如 packgist 至今都是被墙的,只能使用国内的镜像。

以前尝试过给服务器装个 v2ray 走代理,结果被云厂商扫描出来了,还给警告了一下。

怕被停服,不敢装了。

其实有个好办法就是使用 ssh -R 命令,将本地的代理端口共享给服务器,让服务器走你本地的代理去访问国外网站。

使用 ssh 连接服务器的时候,使用以下命令:

ssh -R 本地端口:本地主机:远程端口 用户名@远程主机

- 阅读剩余部分 -

之前一直使用 acme.sh 手动搞,非常麻烦,而且现在又被墙了,更加麻烦。

使用 Certbot,分分钟搞定,并且后续也不需要任何操作,全部自动化了,省心省力。

我服务器使用的是 Ubuntu + Nginx,在 Certbot 官网上选择一下,就可以看到专用的教程了:

2024-03-05T18:43:44.png

根据教程,执行以下步骤:

Certbot 官网: https://certbot.eff.org/

- 阅读剩余部分 -

今天给新开的阿里云主机(系统是 Ubuntu 22.04)安装一个私有的 git 仓库,选用 Gitea。

结果发现 apt 下没有这个软件包。想起来 ubuntu 开始用 snap 了,于是用 snap 试试。

root@ubuntu:~# snap install gitea
gitea v1.21.2 from Gitea installed

果然好使。

检查了一下,发现已经跑起来了。

ps aux | grep gitea
root      231929  1.4  9.8 1916768 171100 ?      Ssl  12:45   0:03 /snap/gitea/6697/gitea web

- 阅读剩余部分 -