3.6 万 Star!一个跨平台快速的轻量级 Web 服务器

Posted 伯乐在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.6 万 Star!一个跨平台快速的轻量级 Web 服务器相关的知识,希望对你有一定的参考价值。

【导语】:用 Go 编写的轻量级 Web 服务器。

简介

Caddy 是用 Go 编写的轻量级 Web 服务器,是一个可扩展的服务器平台。

它相较于 Apache、nginx 这些知名 Web 服务器,特点在于提供了编译好的可执行文件,实现了真正的开箱即用。无需任何配置即可拥有免费的 HTTPS、自动把 Markdown 文件转化成 html 等人性化的功能。如果是搭建中小型的 Web 服务,它完全够用而且省时省心。


功能特点:

  • 自定义 Caddyfile 文件可进行功能配置。
  • 使用 JSON API 可进行动态的配置。
  • 默认自动使用 HTTPS,Caddy 是唯一一个默认自动使用 HTTPS 的 Web 服务器。
  • 高度可扩展的模块化架构。
  • 独立运行,没有任何外部的依赖关系。
  • 使用比其他服务器编程语言具有更高内存安全保证的 Go 语言进行编写。
  • Caddy 既是灵活、高效的静态文件服务器,也是强大的、可扩展的反向代理。
  • 作为反向代理支持主动和被动健康检查、负载均衡、断路、缓存等功能。
  • 项目地址是:

    https://github.com/caddyserver/caddy

    下载安装

    Debian,Ubuntu,树莓派

    使用以下命令安装会自动创建名为 caddy 的系统服务:

    sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
    curl -1sLf \'https://dl.cloudsmith.io/public/caddy/stable/gpg.key\' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
    curl -1sLf \'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt\' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
    sudo apt update
    sudo apt install caddy

    Fedora,RedHat,Centos

    Fedora 或 RHEL/CentOS 8 使用以下命令:

    dnf install \'dnf-command(copr)\'
    dnf copr enable @caddy/caddy
    dnf install caddy

    RHEL/CentOS 7 使用以下命令:

    yum install yum-plugin-copr
    yum copr enable @caddy/caddy
    yum install caddy

    Docker

    docker pull caddy

    Homebrew

    brew install caddy
    快速开始

    API 入门

    首先启动 Caddy,此时 Caddy 处于空闲状态,默认配置为空:

    caddy start

    我们可以通过 API 动态为其添加配置:

    curl localhost:2019/load \\
        -X POST \\
        -H "Content-Type: application/json" \\
        -d @- << EOF
        
            "apps"
                "http"
                    "servers"
                        "hello"
                            "listen": [":2015"],
                            "routes": [
                                
                                    "handle": [
                                        "handler""static_response",
                                        "body""Hello, world!"
                                    ]
                                
                            ]
                        
                    
                
            
        
    EOF

    或者将以上配置的信息保存到 json 文件中:

    curl localhost:2019/load \\
      -X POST \\
      -H "Content-Type: application/json" \\
      -d @caddy.json

    访问一下服务器:

    curl localhost:2015
    Hello, world!

    使用 Caddyfile

    Caddyfile 配置如下:

    localhost 
     respond "Hello, world!"


    localhost:2016 
     respond "Goodbye, world!"

    调用 API 进行更新读取:

    curl localhost:2019/load \\
     -X POST \\
     -H "Content-Type: text/caddyfile" \\
     --data-binary @Caddyfile

    访问一下服务器:

    curl https://localhost
    Hello, world!

    curl https://localhost:2016
    Goodbye, world!

    Caddyfile 的样例如下:

    静态文件

    把静态文件放到需要关联的文件夹中,通过 Caddy 进行发布有两种方式:

    caddy file-server

    # 或者指定端口
    caddy file-server --listen :2015

    # 如果没有索引文件但是想显示文件列表,使用 --browse 选项
    caddy file-server --browse

    # 可以使用另一个文件夹作为站点根目录
    caddy file-server --root ~/mysite

    反向代理

    假设有一个后端 HTTP 服务部署到 127.0.0.1:9000,创建反向代理执行以下命令:

    caddy reverse-proxy --to 127.0.0.1:9000

    或者使用 Caddyfile 进行配置:

    :2016

    reverse_proxy 127.0.0.1:9000

    更新 Caddyfile 后要生效需 reload 或者 重新启动 Caddy。


    - EOF -

    推荐阅读  点击标题可跳转

    1、很佩服的一个Google大佬,离职了……

    2、年终奖多发 1 块,税后反而少 3W?

    3、微软开年就出大 bug,大量程序员连夜加班

    伯乐在线

    分享IT互联网职场和精选干货文章(原域名已不再维护)。组织维护10万+star的开源技术资源库,包括:Python, Java, C/C++, Go, JS, CSS, Node.js, php, .NET 等。


    回复 资源 获取10万+star开源资源

    java快速开发平台(框架)

                                        关于IT榻榻米项目介绍

    官网地址:http://www.itttm.com

    前言:IT榻榻米的名称由来呢?

    我希望开发项目可以结构化的,轻量级的,就像榻榻米装修一样的简约风格,通过它可以快速迭代一个项目。

    1:什么是IT榻榻米?

    答:IT榻榻米是一款java轻量级智能快速开发平台(框架),可以帮助您解决项目中90%的重复工作,让您更多关注业务逻辑。由于本身轻量级特性,可根据自身需求二次开发想要的功能。

    IT榻榻米可以让开发者更加专注实现项目的业务逻辑。项目本身集成了“一键代码生成器”,实现了一个单表所有的CRUD功能以及查询功能,只需要一分钟copy代码到项目即可。

    2: IT榻榻米适合哪些用户群体?

    答:IT榻榻米java快速开发平台适合,开发java从业者,有一部分其他语言基础的想要学习java的朋友,适合有一定经验的站长。

    3: IT榻榻米可以帮助我什么?

    答:由于本身特点轻量级,所以可以让开发者快速二次开发各种系统,如:OA,CMS,等等定制开发的系统 。也可以帮助从事其他语言开发的开发者快速学习掌握java开发的流程。

    4: IT榻榻米使用的一些技术有哪些?

    答:目前IT榻榻米采用了主流的 springboot ,apache shiro,apache maven,mysql,bootsrap 等等最新技术 。

    5: IT榻榻米都有哪些功能?

    答:本项目目前实现了 后台管理的基本功能,如:用户管理,角色管理,权限管理,菜单管理,细粒度的权限拦截,基于多视图的前端模版引擎,如springboot 推荐的thymeleaf 以及大家熟悉的 freemaker ,系统还集成了支付宝支付功能,也集成了微信开发,并且整合了文件上传,以及各种公用组件等等功能,这里不一一细说 。

    技术分享图片

    技术分享图片

    技术分享图片

    以上是关于3.6 万 Star!一个跨平台快速的轻量级 Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

    yarn使用指南

    yarn使用指南

    yarn使用指南

    芭比Q了!5.4万GitHub Star一朝清零!

    芭比Q了!5.4万GitHub Star一朝清零!

    7.2万Star人气开源项目惨遭封禁下架,GitHub CEO很闹心