グローバル オプション ブロック サーバー グローバル構成 HTTPS や管理 API などを有効にするかどうかの構成に使用できます。 スニペット 再利用可能な構成スニペット 定義後、import キーワードを介して参照できます サイト ブロック 単一 Web サイト構成 静的プロキシは file_server を介して構成できますおよび reverse_proxy 動的エージェントを構成できます。 マッチャー定義 マッチ定義 デフォルトでは、ディレクティブはグローバルな影響を及ぼします。影響力を指定できます コメント コメント サイトアドレスで始まる#記号を使用してください Web サイト アドレス デフォルトでは HTTPS が使用されます。HTTP を有効にする必要がある場合は、 ディレクティブ ## を指定する必要があります。 # ディレクティブ http:// Caddy の強力な機能の先頭にあるディレクティブ 反向代理 反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。我们以代理域名为例,讲解如何进行静态和动态代理。
静态代理 静态代理就是将请求代理到不同的静态资源路径上去,这里我们将对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目录中去,并进行解压操作:
修改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格式化并重写配置即可解决;
通过docs.macrozheng.com即可访问部署好的文档项目了:
通过mall.macrozheng.com即可访问到部署好的前端项目了。
动态代理 动态代理就是把代理服务器的请求转发到另一个服务上去,这里我们将把对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文档页面了。
文件压缩 如果我们的服务器带宽比较低,网站访问速度会很慢,这时我们可以通过让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;
压缩后为544K,访问速度也有很大提示;
另外我们可以看下响应信息,如果有Content-Encoding: gzip这个响应头表明Gzip压缩已经启用了。
地址重写 有的时候我们的网站更换了域名,但还有用户在使用老的域名访问,这时可以通过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サーバーキャディの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPを使用してQ&Aコミュニティプラットフォームの開発方法PHPインタラクティブコミュニティの収益化モデルの詳細な説明
Jul 23, 2025 pm 07:21 PM
1. PHP開発の質問と回答コミュニティにおけるLaravel MySQL VUE/Reactの組み合わせの最初の選択は、生態系の成熟度と高開発効率のため、Laravel MySQL Vue/Reactの組み合わせの最初の選択肢です。 2。高性能では、キャッシュ(REDIS)、データベース最適化、CDN、非同期キューへの依存が必要です。 3.入力フィルタリング、CSRF保護、HTTPS、パスワード暗号化、許可制御を使用してセキュリティを行う必要があります。 4。オプションの広告、メンバーのサブスクリプション、報酬、委員会、知識の支払い、その他のモデル、コアはコミュニティトーンとユーザーのニーズに合わせることです。
nginxの「オープンファイルが多すぎる」エラーの原因は何ですか?
Jul 05, 2025 am 12:14 AM
nginxが「ToomyopenFiles」エラーを経験する場合、通常、システムまたはプロセスがファイル記述子の制限に達したためです。ソリューションには、次のものが含まれます。1。Linuxシステムのソフト制限とハードリミットを増やし、nginxの関連パラメーターを設定するか、/etc/security/limits.confでユーザーを実行します。 2. NginxのWorker_Connections値を調整して、予想されるトラフィックに適応し、過負荷の構成を確認します。 3.システムレベルのファイル記述子の上限を増やし、file-max、edit /etc/sysctl.confを編集し、変更を適用します。 4. open_lの使用など、ログとリソースの使用を最適化し、不要なファイルハンドルの使用量を削減します
NGINXとPHPサービスの組み合わせを構成するためにMACOSを使用してPHP Nginx環境を構築する方法
Jul 25, 2025 pm 08:24 PM
MAC環境の構築におけるHomebrewの中心的な役割は、ソフトウェアのインストールと管理を簡素化することです。 1. Homebrewは、依存関係を自動的に処理し、複雑な編集プロセスとインストールプロセスを簡単なコマンドにカプセル化します。 2。ソフトウェアのインストールの場所と構成の標準化を確保するために、統一されたソフトウェアパッケージエコシステムを提供します。 3.サービス管理機能を統合し、BrewServicesを介してサービスを簡単に開始および停止できます。 4.便利なソフトウェアのアップグレードとメンテナンス、およびシステムのセキュリティと機能を改善します。
Kubernetesを使用してPHP環境を一貫した生産とローカルコンテナ構成標準に保つ方法
Jul 25, 2025 pm 06:21 PM
PHP環境と生産の間の矛盾の問題を解決するために、コアはKubernetesのコンテナ化とオーケストレーション機能を使用して環境の一貫性を実現することです。特定の手順は次のとおりです。1。すべてのPHPバージョン、拡張機能、依存関係、Webサーバー構成を含む統一されたDockerイメージを構築して、開発と生産で同じ画像が使用されるようにします。 2. KubernetesのconfigMapとSecretを使用して、非感受性および敏感な構成を管理し、ボリュームマウントまたは環境可変噴射を介したさまざまな環境構成の柔軟な切り替えを実現します。 3.統一されたKubernetes展開定義ファイル(展開やサービスなど)を介してアプリケーションの動作の一貫性を確保し、バージョンコントロールに含める。 4。
PHPを使用してeコマースバックエンド収益化PHP eコマースシステムアーキテクチャと利益戦略を開発する方法
Jul 25, 2025 pm 06:33 PM
1. PHP Eコマースバックエンドの主流のフレームワークには、Laravel(高速開発、強力な生態学)、Symfony(エンタープライズレベル、安定した構造)、YII(優れたパフォーマンス、標準化されたモジュールに適しています)が含まれます。 2。テクノロジースタックには、MySQL Redisキャッシュ、RabbitMQ/Kafkaメッセージキュー、NGINX PHP-FPM、およびフロントエンド分離を装備する必要があります。 3.高並行性アーキテクチャを階層化し、モジュラー、データベースの読み取りおよび書き込み分離/分散データベース、キャッシュとCDNで加速し、タスクの非同期処理、ロードバランスとセッションの共有、徐々にマイクロサービス、および監視とアラームシステムの確立を行う必要があります。 4.複数の収益化パスには、製品価格の差額またはプラットフォームコミッション、サイト広告、SaaSサブスクリプション、カスタマイズされた開発およびプラグインマーケット、API接続が含まれます
ロケーションブロック(名前付き場所)で @とはどういう意味ですか?
Jul 09, 2025 am 01:49 AM
nginx構成では、ロケーションブロック内の @シンボルを使用して、指定された場所を定義します。これらは内部で使用されているエンドポイントであり、クライアントリクエストによって直接一致することはできません。通常、ERROR_PAGE、try_files、または書き換えディレクティブを介して呼び出されます。 1。命名場所は @で始まります。たとえば、location@notfoundは直接リクエストに応答するのではなく、他の構成部品からトリガーします。 2。カスタムエラー処理、内部ルーティング、バックエンドエージェントのバッキングによく使用されます。 3.たとえば、try_filesと組み合わせて、静的ファイルが存在しない場合は@backendに転送します。 4。メモには、直接アクセスされず、紛争の命名を避け、記述名を使用します。名前付きの場所には含まれます
リロード前に構文エラーをNGINX構成をテストする方法は?
Jul 13, 2025 am 01:06 AM
NGINX構成を変更した後、最初に構文をテストしてからサービスをリロードする必要があります。 1. nginx-Tを使用して、構成ファイルの構文を確認します。プロンプト「Syntaxisok」と「testissuccessful」がプロンプトされた場合、それは正しいことを意味します。エラーがある場合、特定の問題行が表示されます。 2.構成ファイルのアクセス許可が高い場合、sudonginx-tを使用して実行する必要があります。 3.テストが実際にロードされていることを確認してください。 Nginx-T-C/path/to/your/nginx.confを介してパスを指定するか、メインプロセスでPS-EF | grepnginxを介して使用される構成ファイルを表示できます。 4。テストに合格したら、sudonginx-sreloadオーバーロードサービスを実行して、新しい構成を有効にします
PHP環境設定のMongoDBサポートをMongoデータベースに構成する方法
Jul 23, 2025 pm 06:54 PM
MongoDBをサポートするPHP環境を構成するために、コアステップはMongoDBのPHPドライバーをインストールして有効にして、PHPアプリケーションがMongoDBデータベースと通信できるようにすることです。 1. MongoDBPHPドライバーをインストールすると、PECLを使用してインストールすることをお勧めします。 PECLがない場合は、最初にPHP開発パッケージと関連するコンピレーションツールをインストールする必要があります。 2。PHP.iniファイルを編集し、拡張機能= mongodb.so(または.dll)を追加して拡張機能を有効にします。 3. WebサーバーまたはPHP-FPMサービスを再起動して、構成を有効にします。 4.拡張機能がphpinfo()またはphp-mを介して正常にロードされているかどうかを確認します。よくある質問には、PECLコマンドの欠落、コンピレーションエラー、Php.iniが含まれます
See all articles