Please enable Javascript to view the contents

开发 Tips(4)

 ·  ☕ 2 分钟

主要记录最近遇到的一些开发问题,解决方法。

1. WhiteNoise 转发静态文件

Django 内置的静态文件服务器效率很低,而 WhiteNoise 是一个不错的替代品。具有如下特点:

  • 通常用于 PaaS 服务
  • 支持 wsgi 应用程序,针对 Django 进行了特殊适配
  • 配合 CDN 使用,更佳
  • 在 Gunicorn 配合下,使用 sendfile 系统调用,处理效率非常高
  • 相比于 Nginx,WhiteNoise 提供静态文件服务的方式更加简单,但效率只有 Nginx 的 15%

2. 记录 Django 模型修改历史

  • django-simple-history

    原理:每个需要追踪的模型都需要单独创建一张表,修改实例时,在表中直接新建一条记录。

  • django-reversion

    原理:当模型数据发生修改时,将修改序列化到 Version 表中。仅需要一张表,就可以记录全部修改记录。

3. CentOS 升级 Docker 版本

  1. 卸载旧版本的Docker
1
2
3
4
5
6
$yum remove docker \
            docker-common \
            container-selinux \
            docker-selinux \
            docker-engine \
            docker-engine-selinux

保存在 /var/lib/docker/ 的镜像、容器、数据、网络都会被保留。

  1. 安装依赖
1
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 安装 Docker
1
2
3
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
1
yum makecache fast
1
yum install docker-ce

4. 远程控制工具 - TeamViewer

由于,目前(2018.11)Mac OS X 的 QQ 不支持远程协助。推荐另外一个远程控制软件:

TeamViewer 兼容于 Microsoft Windows、Mac OS X、Linux、iOS、Android 操作系统,也可以通过网页浏览器连线已安装 TeamViewer 的计算机。

5. Linux 新增交换分区文件

查看当前分区情况

1
free -m

增加 swap 大小,2G 左右

1
dd if=/dev/zero of=/var/swap bs=1024 count=2048000

设置交换文件

1
mkswap /var/swap

立即激活启用交换分区

1
swapon /var/swap

添加系统引导时自启动运行

1
vi /etc/fstab

添加一行

1
/var/swap       swap      swap     defaults   0   0

至此,CentOS 增加 Swap 分区大小,完成。

收回 swap 空间

1
swapoff /var/swap

从文件系统中回收

1
rm /var/swap

6. CentOS 7 安装 minikube

新增安装源:

1
2
3
4
5
6
7
8
9
cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

开始安装:

1
2
3
4
yum -y install kubectl
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube 
chmod +x minikube
mv minikube  /usr/local/bin/

Linux 下 minikube 支持两种虚拟机 VirtualBox 和 KVM。但如果,你使用的是云服务器,无法开启 CPU 的虚拟化功能,可以使用使用宿主机的 Docker 环境。

1
minikube start --vm-driver=none

参考文章

7. CentOS 7 安装指定版本的 Docker

新增 Aliyun 的 docker-ce 源

1
2
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看可选的 docker-ce 版本

1
2
3
4
5
6
yum list docker-ce --showduplicates

docker-ce.x86_64                                                                                                           17.03.3.ce-1.el7                                                                                                                   docker-ce-stable
docker-ce.x86_64                                                                                                           18.06.3.ce-3.el7                                                                                                                   docker-ce-stable
docker-ce.x86_64                                                                                                           3:18.09.9-3.el7                                                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                                           3:19.03.8-3.el7                                                                                                                    docker-ce-stable

安装指定版本的 docker-ce

1
yum install  -y docker-ce-19.03.8-3.el7

启动

1
2
systemctl start docker
systemctl enable docker

微信公众号
作者
微信公众号