使用 Caddy 替代 Nginx,全站升级 https,配置更加简单

## Caddy 是什么? Caddy 是一个多功能的 HTTP web服务器,并且使用Let’s Encrypt提供的免费证书,自动让网站升级到HTTPS

Every Site on HTTPS Caddy is a general-purpose HTTP/2 web server that serves HTTPS by default. Fork Caddy On Github

为什么要使用 Caddy

  1. 安全 Caddy 是一个默认使用https协议的web服务器
  2. 无依赖 Caddy 使用 Go 语言编写,编译好的二进制文件能够运行在任何支持Go语言的平台,不需要自己安装任何库。
  3. 使用简单 Caddy 的配置简单,不管你是新的web开发者,还是专业人士,都能够快速上手

安装以及运行

  1. 下载 Caddy download 在官网上选择指定的平台,下载指定平台的运行包。 这里以 CentOS 7.0 x64 为例。 选择 Linux 64-bit,然后点 DOWNLOAD。 通过ftp将下载好的包上传到服务器,或者复制出下载地址直接在服务端 wget https://caddyserver.com/download/linux/amd64。 使用 wget 的模式下载下来的文件名是 amd64。 tar -xzvf amd64 解压, 解压后文件如下。 alt 我们可以直接运行 ./caddy,这样就启动了一个静态的web服务器,根目录为当前目录,端口为 2015,可以通过你服务器的ip地址加上:2015 进行访问了。 如果你访问的时候,报404异常,在你当前目录下添加一个 index.html 文件即可。

阅读剩余部分 -

使用 CADDY 代替 NGINX

具,在折腾 Drone 的时候,我最终就是使用的它提供 Web 服务。回到标题,为什么要用 Caddy 替换掉 Nginx 呢?最主要的原因是 Caddy 能让网站自动支持 HTTPS。同样是使用 Let's Encrypt,换成 Nginx 我们就必须手工操作,并且还需要设置三个月更新证书的计划任务。而且默认还支持 http/2,很多事情都不需要我们再配置了。另外它的配置文件也比 Nginx 的要简单很多,几十行的 Nginx 配置文件 Caddy 仅需要几行就可以搞定了。

安装 Caddy

Caddy 提供了一键安装命令生成功能,访问 https://caddyserver.com/download 选择对应的平台,插件可默认为空,最后选择对应的协议后下方即会生成一键安装命令,例如:

  1. $ curl https://getcaddy.com | bash -s personal

安装后执行 which caddy 你会发现 Caddy 已经安装到了 /usr/local/bin/caddy 位置。

caddy命令生成

  1. $ echo 'localhost:8000' >> Caddyfile
  2. $ caddy

执行如上命令在浏览器中访问 http://localhost:8000 发现 Caddy 启动了一个简单的 HTTP 服务器。

阅读剩余部分 -

如何设置网站 301 重定向 | 使用 Cloudflare

前言

301 是 HTTP 协议中的一个状态码,表示该网页已经永久迁移到新位置。

我们经常在更换域名时,使用 301 重定向来把旧域名永久转移到新域名上去,它可以同时把我们旧域名的流量和权重同时转移到新域名上去,对搜索引擎比较友好,避免了更换域名所带来的流量丢失。

适用情况

  • 更换域名,将旧域名指向新域名;
  • 网址规范化,将 a.com、www.a.com、blog.a.com 等访问地址全部指向 a.com 一个地址,集中流量和权重;
  • 将指向过期、无效网页的链接重定向至正确地址;
  • http 重定向到 https。

使用 Cloudflare 进行重定向

下面介绍下如何使用 Cloudflare 的页面规则对网站进行 301 重定向。

Cloudflare 相关教程:

Step 1

登录 Cloudflare 的控制面板,进入 “Page Rules” 页面,创建一条页面规则。

image.png

阅读剩余部分 -

CloudFlare 如何设置 301 域名跳转

自从转移到 CloudFlare 以后,各方面都非常满意,但是唯独根域名跳转 www 一直无法搞定。

CloudFlare 的 Page Rules 反反复复尝试了一堆的设置方法,就是无法实现跳转 www ,后来通过Http检测工具发现,根域名压根没有解析到任何地方,所以导致了无法跳转 www,于是给根域名设置了一个 A 记录到 8.8.8.8 ,“奇迹”居然出现了,可以跳转了。我滴个乖乖啊。

总结一下,只要2部即可实现 CloudFlare 通过 Page Rules 实现根域名跳转 www:

  1. 给根域名指定一个 A 记录
    比如:[*.a.com] – [A记录] – [1.1.1.1]
  2. 设置 Page Rules 规则:
    [http://a.com/] – [Forwarding URL] – [301 Permanent Redirect] – [https://www.a.com]

 

阅读剩余部分 -

快讯:GOOGLE 正式推出移动优先索引( MOBILE-FIRST INDEXING)

Mobile-First Indexing

通过一年半时间的测试,Google 今天在 Webmaster Central Blog 和 Twitter 宣布,正式推出 Mobile-First Indexing。该策略将对 Google SEO 产生影响非常大,本人第一时间整理资料,整理了相关的几个要点。

为什么要推出 Mobile-First Indexing

众所周知,Google 的抓取、索引和排名系统都是基于 PC 端网页建立,移动端的排名和权重主要继承自 PC 端。那在 WAP 流量远超 PC 的今天,这种机制就会出现各种各样的问题。

  • 很多网站的 PC 端页面展示所有内容,而WAP 只展示部分内容。
    • 举个极端的例子,移动端用户通过搜索达到某页面,发现并没有对应的内容(这个内容只在 PC 呈现,在 WAP 不呈现)
  • 很多网站重点优化 PC 站,而 WAP 站功能缺失体验严重落后,移动搜索用户体验极差
    • 我目前的项目就有这个问题
  • 因为移动端用户较多,部分网站重点建设 WAP 站,而忽视了 PC 站的建设,导致无法获取到该有的排名和流量
    • 这种情况比较少

根据目前流量趋势,Google 急需调整策略,保证 PC 和 WAP 端的搜索体验。

阅读剩余部分 -

shell 1>&2 2>&1 &>filename重定向的含义和区别

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出.

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是:

0 是一个文件描述符,表示标准输入(stdin)
是一个文件描述符,表示标准输出(stdout)

是一个文件描述符,表示标准错误(stderr)

在标准情况下, 这些FD分别跟如下设备关联: 
stdin(0): keyboard 键盘输入,并返回在前端 
stdout(1): monitor 正确返回值 输出到前端 
stderr(2): monitor 错误返回值 输出到前端

举例说明吧:

当前目录只有一个文件 a.txt. 
[root@redhat box]# ls 
a.txt 
[root@redhat box]# ls a.txt b.txt 
ls: b.txt: No such file or directory 由于没有b.txt这个文件, 于是返回错误值, 这就是所谓的2输出 
a.txt 而这个就是所谓的1输出

阅读剩余部分 -

django建表的时候出现sql_mode的警告

执行

python manage.py migrate

建表的时候,遇到如下的警告:

?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
    HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-sql-mode

大意就是没有给mysql连接启用严格模式,而严格模式能解决很多数据完整性问题,官方墙裂建议开启。

严格模式对于数据完整性校验比较严格,对SQL语句的健壮性要求更高,比如不允许NOT NULL字段插入没有默认值的数据,以及上面提到的插入数据被截断提示由警告变成错误。

阅读剩余部分 -

最新文章

归档

其它

链接

meiyoutongji