zoukankan      html  css  js  c++  java
  • nginx之外的web 服务器caddy 微信公众号

    caddy比nginx的不同:

    1. caddy自带https的前端,直接将http服务器转换为https服务器。而nginx需要用户自己安装。
    2. caddy可以自己申请证书,而且可以过期时自动申请。而nginx好像不能申请证书,过期也无法帮你申请。

    另外,浏览器通过https连接本地/内部的https网页时,chrome会提示安全问题,此时可以设置将它加入例外,但还有个更简单的方法,在chrome网页里直接盲敲thisisunsafe就可以马上访问该https网页。

    caddy 有两种格式的配置方法,一种叫Caddyfile格式,一种叫json格式。Caddyfile格式简洁明了,json由于有括号和缩进,比较不适合人眼。但是json才可以进行完整配置,Caddyfile不能进行完整配置,只包含大部分配置,一般情况下绝对够用了。
    caddy可以将Caddyfile转换成json,供server管理者查看,方法:
    caddy adapt -config Caddyfile -pretty -validate > config.json
    其中Caddyfile就是配置文件名,config.json保存转换后的配置,-pretty美化打印,-validate对配置文件进行正确性验证。
    caddy run 相当于 caddy start,但是run在前台运行,不创建daemon,而start在后台运行。他们默认寻找当前目录下的Caddyfile作为配置文件,如果配置文件在别处,可以用-config path/to/config/file来指定配置文件路径。一个典型的Caddyfile如下:

    localhost {
        respond "Hello, world!"
    }
    
    localhost:2016, 127.0.0.1:2016 {
        respond "Goodbye, world!"
    }
    

    该配置文件创建了两个server容器,一个是localhost:443 (https), 一个是localhost:2016 (https),并将127.0.0.1:2016的所有访问(http 和 https)全部redirect到localhost:2016。另外本机的80端口(http)会被默认redirect到其中一个server容器,至于是哪一个,只有运行之后才知道,如果不接受这种随机redirect 80端口,可以自己写死。

    另外,443和80端口都需要root权限,caddy第一次运行时会申请CA认证,好像是放在:/root/.local/share/caddy/,下面是我自己的目录结构:

    /root/.local/share/caddy/
    ├── certificates
    │   └── local
    │       ├── 127.0.0.1
    │       │   ├── 127.0.0.1.crt
    │       │   ├── 127.0.0.1.json
    │       │   └── 127.0.0.1.key
    │       └── localhost
    │           ├── localhost.crt
    │           ├── localhost.json
    │           └── localhost.key
    ├── locks
    └── pki
        └── authorities
            └── local
                ├── intermediate.crt
                ├── intermediate.key
                ├── root.crt
                └── root.key
    
    8 directories, 10 files
    

    这只是我运行了上面那个典型的Caddyfile而产生的CA文件。下次补上用域名后caddy自动申请CA的文件结构。

    用真正的域名来运行caddy,下面是我服务器上的配置:

    Caddyfile:

    :my_port, my_domain.com:my_port, www.my_domain.com:my_port {
    	respond "I love China deep."
    
    	log {
    		output file /home/my_user_home/temp/caddy-log/caddy.log {
    			roll_size    10MiB 
    			roll_keep    10
    		}
    	}
    }
    

    其中,my_port 和 my_domain 我做了隐藏,my_user_home 我也做了隐藏。
    使用 sudo caddy_linux_amd64 start -config /path/to/Caddyfile 运行caddy 后,它立刻会自动帮你申请my_domain的证书,你什么都不用管,直接从浏览器就可以访问了。记住,它会把80端口forward到你的my_port端口,你在浏览器访问http://my_domain.com时,会forward到https://www.my_domain.com:my_port,也即会将80端口的访问forward,但是它不会forward 443端口,你访问https://my_domain.com是ERR_CONNECTION_REFUSED。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    微信公众号:  共鸣圈
    欢迎讨论,邮件:  924948$qq.com       请把$改成@
    QQ群:263132197
    QQ:    924948

    良辰美景补天漏,风雨雷电洗地尘
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 相关阅读:
    事后诸葛亮
    团队作业6--展示博客(Alpha版本)
    团队作业5——测试与发布(Alpha版本)
    团队作业2:需求分析&原型设计
    团队编程作业1-团队展示与选题
    结对编程1
    TeamViewer app案例分析
    第一次作业--四则运算
    【Alpha】Daily Scrum Meeting 集合贴
    【Alpha】Daily Scrum Meeting——Day3
  • 原文地址:https://www.cnblogs.com/welhzh/p/15608835.html
Copyright © 2011-2022 走看看