Caddy标准HTTP指令简介

本文将对Caddy的29个标准HTTP指令做一个汇总,并简要的描述每个指令的作用.

所有的指令的详细介绍都可以在 https://caddyserver.com/docs/ 路径下查看,如查看 proxy 的详细介绍可访问 https://caddyserver.com/docs/proxy

指令 说明 默认情况的处理
basicauth HTTP基本认证  
bind 用于给TCP监听套接字绑定IP地址 默认绑定在为通配符地址
browse 目录浏览功能  
errors 配置HTTP错误页面以及错误日志 响应码>=400的返回一个纯文本错误消息,也不记录日志
expvar 将运行时或者当前进程的一些信息(内存统计,启动命令,协程数等)以JSON格式暴露在某个路径下.  
ext 对于不存在的路径,自动追加后缀名后再次尝试  
fastcgi fastcgi配置  
gzip gzip压缩配置 不压缩,但是如果网站目录下存在.gz或者.br压缩文件,Caddy就会使用. 如果客户端支持gzip格式的压缩压缩文件,Caddy确保不压缩图片,视频和已压缩文件
header 设置响应头,可以增加,修改和删除.如果是代理的必须在proxy指令中设置  
import 从其他文件或代码段导入配置,减少重复  
index 索引文件配置 index(default).html(htm/txt)
internal X-Accel-Redirect 静态转发配置, 该路径外部不可访问,caddy配置的代理可以发出X-Accel-Redirect请求  
limit 设置HTTP请求头( one limit applies to all sites on the same listener)和请求体的大小限制 默认无限制.设置了之后,如果超出了限制返回413响应
log 请求日志配置  
markdown 将markdown文件渲染成HTML  
mime 根据响应文件扩展名设置Content-Type字段  
on 在服务器启动/关闭/刷新证书的时候执行的外部命令  
pprof 在某个路径下展示profiling信息  
proxy 反向代理和负载均衡配置  
push 开启和配置HTTP/2服务器推  
redir 根据请求返回重定向响应(可自己设置重定向状态码)  
request_id 生成一个UUID,之后可以通过{request_id}占位符使用  
rewrite 服务器端的重定向  
root 网站根目录配置  
status 访问某些路径时,直接返回一个配置好的状态码  
templates 模板配置  
timeouts 设置超时时间:读请求的时间/读请求头的时间/写响应的时间/闲置时间(使用keep-alive时) Keep-Alive超时时间默认为5分钟
tls HTTPS配置,摘自文档的一句话: Since HTTPS is enabled automatically, this directive should only be used to deliberately override default settings. Use with care, if at all.  
websocket 提供一个简单的Websocket服务器

阅读剩余部分 -

使用 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输出

阅读剩余部分 -

最新文章

归档

其它

链接

meiyoutongji