ホームページ >運用・保守 >Nginx >Nginx Webサーバーキャディの使用方法

Nginx Webサーバーキャディの使用方法

WBOY
WBOY転載
2023-05-30 12:19:452562ブラウズ

    Caddy の紹介

    Caddy は、現在 GitHub で 38,000 個のスターを獲得している、強力で拡張性の高い Web サーバーです。 Caddy は Go 言語で書かれており、静的リソースのホスティングとリバース プロキシに使用できます。

    Caddy には次の主な機能があります:

    • Nginx の複雑な構成と比較して、元の Caddyfile 構成は非常にシンプルです。 # 構成は、提供される Admin API を通じて動的に変更できます。

    • はデフォルトで自動 HTTPS 構成をサポートし、HTTPS 証明書を自動的に適用して構成できます。

    • 数万のサイトに拡張可能;
    • 追加の依存関係なしでどこでも実行可能;
    • Go 言語で書かれているため、メモリのセキュリティがより保証されます。
    • インストール
    • まず、CentOS 8 に Caddy を直接インストールします。DNF ツールを使用したインストールが間違いなく最も簡単です。Docker のインストール方法は後ほど紹介します。

    • 次のコマンドを使用して、DNF ツールを通じて Caddy をインストールします。インストールが成功すると、Caddy はシステム サービスとして登録されます。
    dnf install 'dnf-command(copr)'
    dnf copr enable @caddy/caddy
    dnf install caddy

    systemctl status caddy を使用して Caddy のステータスを確認してください。 Caddy がシステム サービスとして登録されていることがわかりますが、まだ有効になっていません。

    使い方

    Caddy の基本的な使い方を体験してみましょう Web サーバーではよくある操作ですので、必ず使えます!

    Nginx Webサーバーキャディの使用方法基本的な使用法

    Caddy を 2015 ポートで実行し、「Hello, world!」メッセージを返すように指定して、Caddy を使用して始めましょう。

    キャディ コマンドを直接使用すると、キャディの共通コマンドが出力されます。基本的には、はじめにを読めば使い方がわかります。共通コマンドにはマークが付けられています。

    #Use caddy start コマンドを使用すると、Caddy サービスをバックグラウンドで実行できます。

    Nginx Webサーバーキャディの使用方法Caddy は、デフォルトで JSON 形式の構成ファイルを使用します。 JSON 形式の設定を記述するのは面倒ですが、Caddyfile も提供されています。簡単な設定フォームでは、次のコマンドを使用して、Caddyfile を JSON 設定に自動的に変換します。

    caddy adapter

    まず、次の内容を含む Caddyfile という名前のファイルを作成します。次に、キャディ アダプタを使用して JSON 構成に変換し、キャディ リロードを使用して構成を有効にします。構成は 2015 ポートをリッスンし、Hello, world!;

    :2015
    
    respond "Hello, world!"

    を返します。次に、curl コマンドを使用して、 localhost:2015 にアクセスすると、指定された情報が返されます。Nginx Webサーバーキャディの使用方法

    もちろん、Caddy が提供する Admin API を使用して構成情報を表示することもできます。次のコマンドを使用するだけです。 ;

    curl localhost:2019/config/

    現在の JSON 構成は次のとおりです。JSON 構成を直接使用する場合は、次の構成を記述する必要があります。Caddyfile を使用する方が確かに便利です。

    {
    	"apps": {
    		"http": {
    			"servers": {
    				"srv0": {
    					"listen": [":2015"],
    					"routes": [{
    						"handle": [{
    							"body": "Hello, world!",
    							"handler": "static_response"
    						}]
    					}]
    				}
    			}
    		}
    	}
    }

    Caddyfile の基本構文Nginx Webサーバーキャディの使用方法

    次のケースでは、設定に Caddyfile を使用します。その構文を理解する必要があります。Caddyfile の具体的な構文規則は次のとおりです。

    #理解を助けるために、上の図のキーワードを紹介します。

    #キーワード

    Nginx Webサーバーキャディの使用方法説明

    使用

    グローバル オプション ブロックサーバー グローバル構成HTTPS や管理 API などを有効にするかどうかの構成に使用できます。スニペット再利用可能な構成スニペット定義後、import キーワードを介して参照できます サイト ブロック単一 Web サイト構成静的プロキシは file_server を介して構成できますおよび reverse_proxy 動的エージェントを構成できます。マッチャー定義マッチ定義デフォルトでは、ディレクティブはグローバルな影響を及ぼします。影響力を指定できますコメントコメントサイトアドレスで始まる#記号を使用してくださいWeb サイト アドレス デフォルトでは HTTPS が使用されます。HTTP を有効にする必要がある場合は、ディレクティブ

    反向代理

    反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。我们以代理域名为例,讲解如何进行静态和动态代理。

    静态代理

    静态代理就是将请求代理到不同的静态资源路径上去,这里我们将对docs.macrozheng.com的请求代理到我的文档项目中,对mall.macrozheng.com的请求代理到mall的前端项目中。

    首先我们修改下本机的host文件:

    192.168.3.106 docs.macrozheng.com
    192.168.3.106 mall.macrozheng.com

    然后将我们的文档项目和mall前端项目上传到Caddy的html目录中去,并进行解压操作:

    Nginx Webサーバーキャディの使用方法

    修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置;

    http://docs.macrozheng.com {
            root * /mydata/caddy/html/docs
            file_server browse
    }
    
    http://mall.macrozheng.com {
            root * /mydata/caddy/html/mall
            file_server browse
    }

    如果你的Caddyfile文件格式不太合格的话,会出现如下警告,直接使用caddy fmt --overwrite格式化并重写配置即可解决;

    Nginx Webサーバーキャディの使用方法

    通过docs.macrozheng.com即可访问部署好的文档项目了:

    Nginx Webサーバーキャディの使用方法

    通过mall.macrozheng.com即可访问到部署好的前端项目了。

    Nginx Webサーバーキャディの使用方法

    动态代理

    动态代理就是把代理服务器的请求转发到另一个服务上去,这里我们将把对api.macrozheng.com的请求代理到演示环境的API服务上去。

    首先我们修改下本机的host文件,添加如下规则

    192.168.3.106 api.macrozheng.com

    修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置;

    http://api.macrozheng.com {
            reverse_proxy http://admin-api.macrozheng.com
    }

    之后通过api.macrozheng.com/swagger-ui.html即可访问到mall-admin的API文档页面了。

    Nginx Webサーバーキャディの使用方法

    文件压缩

    如果我们的服务器带宽比较低,网站访问速度会很慢,这时我们可以通过让Caddy开启Gzip压缩来提高网站的访问速度。这里我们以mall的前端项目为例来演示下它的提速效果。

    我们需要修改Caddyfile文件,使用encode指令开启Gzip压缩,修改完成后使用caddy reload命令刷新配置;

    http://mall.macrozheng.com {
            root * /mydata/caddy/html/mall
            encode {
                gzip
            }
            file_server browse
    }

    有个比较大的JS文件压缩前是1.7M;

    Nginx Webサーバーキャディの使用方法

    压缩后为544K,访问速度也有很大提示;

    Nginx Webサーバーキャディの使用方法

    另外我们可以看下响应信息,如果有Content-Encoding: gzip这个响应头表明Gzip压缩已经启用了。

    Nginx Webサーバーキャディの使用方法

    地址重写

    有的时候我们的网站更换了域名,但还有用户在使用老的域名访问,这时可以通过Caddy的地址重写功能来让用户跳转到新的域名进行访问。

    我们需要修改Caddyfile文件,使用redir指令重写地址,修改完成后使用caddy reload命令刷新配置;

    http://docs.macrozheng.com {
            redir http://www.macrozheng.com
    }

    此时访问旧域名docs.macrozheng.com会直接跳转到www.macrozheng.com去。

    按目录划分

    有时候我们需要使用同一个域名来访问不同的前端项目,这时候就需要通过子目录来区分前端项目了。

    比如说我们需要按以下路径来访问各个前端项目;

    www.macrozheng.com #访问文档项目
    www.macrozheng.com/admin #访问后台项目
    www.macrozheng.com/app #访问移动端项目

    我们需要修改Caddyfile文件,使用route指令定义路由,修改完成后使用caddy reload命令刷新配置。

    http://www.macrozheng.com {
            route /admin/* {
                    uri strip_prefix /admin
                    file_server {
                            root /mydata/caddy/html/admin
                    }
            }
            route /app/* {
                    uri strip_prefix /app
                    file_server {
                            root /mydata/caddy/html/app
                    }
            }
            file_server * {
                    root /mydata/caddy/html/www
            }
    }

    HTTPS

    Caddy能自动支持HTTPS,无需手动配置证书,这就是之前我们在配置域名时需要使用http://开头的原因,要想使用Caddy默认的HTTPS功能,按如下步骤操作即可。

    首先我们需要修改域名的DNS解析,直接在购买域名的网站上设置即可,这里以docs.macrozheng.com域名为例;

    请使用以下命令确认DNS解析记录是否正确,注意所配置的服务器的80和443端口需要在外网中可以正常访问:

    curl "https://cloudflare-dns.com/dns-query?name=docs.macrozheng.com&type=A" \
      -H "accept: application/dns-json"

    修改Caddyfile配置文件,进行如下配置;

    docs.macrozheng.com {
            root * /mydata/caddy/html/docs
            file_server browse
    }

    然后使用caddy run命令启动Caddy服务器即可,是不是非常方便!

    caddy run

    Docker支持

    当然Caddy也是支持使用Docker进行安装使用的,其使用和直接在CentOS上安装基本一致。

    首先使用如下命令下载Caddy的Docker镜像;

    docker pull caddy

    然后在/mydata/caddy/目录下创建Caddyfile配置文件,文件内容如下;

    http://192.168.3.105:80
    
    respond "Hello, world!"

    之后使用如下命令启动caddy服务,这里将宿主机上的Caddyfile配置文件、Caddy的数据目录和网站目录挂载到了容器中;

    docker run -p 80:80 -p 443:443 --name caddy \
        -v /mydata/caddy/Caddyfile:/etc/caddy/Caddyfile \
        -v /mydata/caddy/data:/data \
        -v /mydata/caddy/html:/usr/share/caddy \
        -d caddy

    之后使用docker exec进入caddy容器内部执行命令;

    docker exec -it caddy /bin/sh

    输入Caddy命令即可操作,之后的操作就和我们直接在CentOS上安装一样了。

    Nginx Webサーバーキャディの使用方法

    ## を指定する必要があります。 # ディレクティブ http:// Caddy の強力な機能の先頭にあるディレクティブ

    以上がNginx Webサーバーキャディの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。