AI 摘要

在这篇文章中,我们将探索如何高效地配置Caddy反向服务器,这一过程虽看似复杂,却充满趣味与挑战。Caddy,不同于传统的Nginx,以其便捷性和自带的SSL证书申请功能,成为站点管理的理想选择。我们将为您逐步解读从环境配置到搭建网站的每个环节,让您亲自体验Caddy带来的轻松与快感。让我们一起走进Caddy的世界,解锁反向代理的魅力吧!

Caddy是一款由GO语言编写的反向代理服务器,性能通常来说不如Nginx,但是比NGINX便捷,他默认是申请ssl证书配置https的,下面来看看怎么配置,

什么是反向代理?通俗来说就是让服务端能收到客户端请求的服务叫反代

同理,正代就是让客户端访问到服务端的代理服务,比如访问一些屏蔽掉的网站就会用到正向代理

Github-Card

windows:

下载Caddy:https://caddyserver.com/download,在Caddy根目录下配置caddyfile

网站域名 {
    root * D:/web //网站根目录及子目录
    file_server browse //开启文件浏览,不开启删掉即可
    tls 你的邮箱(配置tls其实不加也可以最好加上)
    enable gzip(开启gzip压缩功能,根据需求来)
}

配置Caddy环境变量:

Caddy配置反向服务器

运行Caddy:

在powershell里运行 caddy start即可运行

输入https://你的域名或ip:端口应该就可以访问了

在大陆地区,80和443端口是封禁的,除非备案,否则请配置其他端口

开机自动运行(cmd或powershell):

sc.exe create caddy start= auto binPath= "caddy绝对根目录/caddy.exe run"

删除开机运行(cmd或powershell):

sc delete caddy

配置php:

php下载链接

https://windows.php.net/downloads/releases/archives

下载php-你的php版本号-nts-Win32-vc15-x64.zip

在caddyfile里的花括号加一行

php_fastcgi 127.0.0.1:9000

按照上面配置caddy环境变量一样配置php环境

配置mysql:

mysql下载链接:https://downloads.mysql.com/archives/community/

msi installer是安装版,zip achlive是解压版,ZIP Archive Debug Binaries & Test Suite是测试版

配置mysql环境同上

在mysql安装目录配置ini(my.ini):

# MySQL 客户端字符编码
default-character-set=utf8mb4

[mysqld]
port = 随便设置这里使用1516//mysql端口
basedir= MySQL的安装目录
# MySQL 数据库文件保存目录
datadir=随便你设置
max_connections=20
character-set-server=utf8mb4//数据库编码,一般是utf8mb4
default-storage-engine=INNODB//数据库引擎
路径的反斜杠需要打两个

在命令行输入:

mysqld --initialize --user=root --console
会出现:
[Server] A temporary password is generated for root@localhost:管理员默认密码

开启mysql在命令行输入

mysqld --console
mysql -uroot -p
输入之前的的管理员密码即可

运行php,mysql,caddy

php运行指令:php-cgi -b 127.0.0.1:9000
mysql:mysql --console
candy: candy run

linux使用caddy教程:

debian/ubuntu等包管理使用apt的系统安装指令:

稳定版:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
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

测试版:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-testing-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-testing.list
sudo apt update
sudo apt install caddy

centos、fedora、rockylinux、RHEL等包管理使用yum或dnf的linux系统安装caddy指令

centos7/RHEL/rockylinux8等主要包管理使用yum的linux系统:

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

centos8/RHEL/rockylinux9/fedora等主要包管理使用dnf的linux系统:

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

创建网站根目录

sudo mkdir 您需要创建的网站绝对目录地址比如/src/www/sb
或者sudo su root然后输入root密码之后输入
mkdir 您需要创建的网站绝对目录地址

上面的命令sudo是使用超级管理员权限运行,su是切换用户,dnf、yum、apt都是包管理(升级,卸载、安装软件的)、curl在这里的主要作用是下载caddy存储库(告诉包管理caddy在哪里下载)

然后配置caddy配置文件(位置在/etc/caddy/Caddyfile)

sudo vim /etc/caddy/Caddyfile
之后按下i输入
caddy.tmplinux.com {
        root * /srv/www/caddy(网站根目录)
        tls 你的邮箱(配置tls其实不加也可以最好加上)
        encode gzip zstd(启用gzip、zstd压缩)
}
最后按下esc输入:wq即可
输入以下命令重新启动caddy
sudo systemctl restart caddy

caddy就配置完成了

安装php

sudo apt install php-fpm php-mysql php-gd php-cli php-curl php-mbstring php-zip php-opcache php-xml php-xmlrpc //debian、ubuntu等系统安装最新php以及常用扩展的指令
yum install -y yum-utils
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y epel-release
yum-config-manager --enable remi-php[指定版本]
yum install -y php[指定版本]
yum install -y php-[扩展名称(如mysql)]

最后在花括号里输入

在caddyfile里的花括号加一行

php_fastcgi 127.0.0.1:9000

安装mysql

mysqllinux包官网:https://dev.mysql.com/downloads/,选择合适的包下载

wget 下载链接
sudo yum install 下载下来的包名称//使用yum包管理的系统安装命令如centos7等
sudo dnf install 下载下来的包名称//使用dnf包管理的系统安装命令如centos8等
sudo apt install 下载下来的包名称//使用apt包管理的系统安装命令如debian等
systemctl start mysqld//运行mysql
sudo grep 'temporary password' /var/log/mysqld.log//获取mysql管理员密码
mysql -uroot -p//输入密码并登录
firewall-cmd --zone=public --add-port=3306/tcp --permanent//打开mysql默认端口
firewall-cmd --reload
有些系统的防火墙不是用的firewall是ufw 所以 
sudo ufw allow 3306/tcp 

完毕喵

  • reward_image1
  • reward_image2
此作者没有提供个人介绍。
最后更新于 2025-03-28