按月归档: 十月 2021

改hosts不生效?教你清理Chrome的DNS缓存

在进行web开发的时候,我们经常会修改hosts文件进行测试,但是偶尔会发现改了hosts文件并不能立刻生效。这是由于浏览器自身对DNS(域名指向)是有进行缓存的,除了缓存之外,由于HTTP1.1支持连接复用,如果之前打开过这个页面,那么即使清理了DNS缓存也会因为复用连接再继续连接到旧的域名指向地址。如果出现连接被复用的情况就需要手动关闭活跃连接了。

查看实际连接地址

查看实际实际连接地址可以通过开发工具的网络面板进行查看。

清理缓存方法

1、在地址栏输入:chrome://net-internals

2、在DNS选项卡下,点击“Clear host cache”,清空缓存;

关闭活跃连接方法

1、在地址栏输入:chrome://net-internals;

2、在Sockets选项卡下,关闭活跃的连接;

再附赠一个清除MacOS DNS缓存的方法

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

上面三招下来还不行,再来捶我。

Read: 25

Nuxt不停机部署指南

在我们的服务器环境中有不少Nuxt应用,但是项目的配置都有问题,会导致项目部署重启的时候会不可用,提示 502 Bad Gateway。而且启动服务的时候总会有奇怪的错误信息,而真正的错误日志又看不到。

下面直接讲正确部署与重启的姿势是怎样。

配置服务

首先我们需要在工程根目录创建一个PM2环境配置文件 ecosystem.config.js

module.exports = {
apps: [
{
name: '项目名称', // 如 ks.mbachina.com
exec_mode: 'cluster', // 启动模式,cluster为集群,无需修改
instances: 'max', // // 实例数量,max为CPU核心数,无需修改
script: './node_modules/nuxt/bin/nuxt.js', // 无需修改
args: 'start' // 启动参数,通常无需修改
}
]
}

构建工程

这里没什么特别的,本地通过 npm run build 或者通过Jenkins进行构建部署到服务器。

需要注意的点是需要将上面的 ecosystem.config.js 部署到服务器上的项目根目录。

启动服务(创建服务)

cd 工程目录
pm2 start

执行上面的命令之后就会自动创建出pm2服务了。

重启服务(不停机重启)

pm2 reload $项目名称

将上面命令的 $项目名称 替换为在ecosystem.config.js中配置的实际项目名称即可。

注意这里用的是reload命令,不要用restart命令。

再次提示,更新代码后只需要执行reload命令即可,不需要先stop、delete再start。

参考:https://nuxtjs.org/docs/2.x/deployment/deployment-pm2

Read: 1