当前位置: 代码网 > 服务器>服务器>Linux > Linux使用Caddy实现反向代理本地localhost:8301全流程

Linux使用Caddy实现反向代理本地localhost:8301全流程

2026年02月11日 Linux 我要评论
你想在linux中使用caddy实现对本地 localhost:8301 服务的反向代理,核心是通过配置 caddyfile 实现,步骤清晰易懂,包含安装、配置、启动全流程,具体如下:一、前提准备:安

你想在linux中使用caddy实现对本地 localhost:8301 服务的反向代理,核心是通过配置 caddyfile 实现,步骤清晰易懂,包含安装、配置、启动全流程,具体如下:

一、前提准备:安装caddy(linux系统通用)

先安装caddy web服务器,推荐官方一键安装脚本(支持ubuntu/debian/centos等主流系统):

# 官方一键安装命令
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 -y

安装完成后,可通过 caddy version 验证是否安装成功。

二、核心步骤:配置caddyfile(实现反向代理)

caddy的配置核心是 caddyfile,默认路径为 /etc/caddy/caddyfile,也可自定义配置文件,下面提供两种配置方式(任选其一):

方式1:使用默认配置文件(推荐,系统级部署)

编辑默认caddyfile:

sudo vim /etc/caddy/caddyfile

替换为反向代理配置(核心配置,适配两种访问场景):

# 场景1:通过服务器公网ip/域名访问(如你的服务器ip是1.2.3.4,域名是yourdomain.com)
# 此处填写你的公网ip或已解析的域名(两者可同时填写,用逗号分隔)
yourdomain.com, 1.2.3.4 {
    # 核心反代指令:转发所有请求到本地8301端口
    reverse_proxy localhost:8301

    # 可选:添加基础配置,提升稳定性
    encode gzip  # 开启gzip压缩,优化访问速度
    header {
        # 允许跨域访问(若前端需要,可开启)
        access-control-allow-origin *
    }
}

# 场景2:仅本地访问(无需公网ip/域名,仅服务器内部或端口映射后访问)
# :80 表示监听服务器80端口(可改为其他端口,如:8080)
:80 {
    reverse_proxy localhost:8301  # 核心反代指令,指向本地8301
    encode gzip
}
  1. 配置说明:
    • reverse_proxy localhost:8301:这是实现反向代理的核心指令,caddy会将接收到的所有请求转发到本地 localhost:8301 服务,并将响应结果返回给客户端。
    • 若只需简单反代,保留 reverse_proxy localhost:8301 即可,其他配置为可选优化。
    • 监听端口:默认80端口(http),若需https(自动配置证书),只需填写已解析的域名(caddy会自动申请let’s encrypt证书)。

方式2:自定义配置文件(灵活部署,适合临时测试)

在任意目录创建自定义caddyfile(如 ~/caddy/caddyfile):

mkdir -p ~/caddy && vim ~/caddy/caddyfile

写入最简反代配置(临时测试用):

# 监听本地8080端口,反代到localhost:8301
:8080 {
    reverse_proxy localhost:8301
}

三、启动caddy服务,使配置生效

根据配置文件类型,选择对应的启动命令,确保反代功能正常运行:

1. 使用默认配置文件(/etc/caddy/caddyfile)

# 启动caddy服务,并设置开机自启
sudo systemctl start caddy
sudo systemctl enable caddy

# 查看服务状态,确认无报错
sudo systemctl status caddy

# 若修改配置后,重新加载配置(无需重启服务)
sudo systemctl reload caddy

2. 使用自定义配置文件

# 进入自定义caddyfile所在目录
cd ~/caddy

# 启动caddy(指定配置文件)
# 前台运行(测试用,关闭终端则停止)
caddy run --config caddyfile

# 后台运行(生产用,不受终端关闭影响)
caddy start --config caddyfile

# 重新加载配置(修改配置后无需停止服务)
caddy reload --config caddyfile

# 停止后台运行的caddy
caddy stop

四、验证反向代理是否成功

  1. 确保本地 localhost:8301 服务已启动(若未启动,先启动该服务)。
  2. 验证方式:
    • 若配置了公网ip/域名:在本地浏览器访问 http://你的公网iphttp://yourdomain.com,若能正常显示 localhost:8301 服务的内容,说明反代成功。
    • 若配置了本地端口(如:8080):在服务器上执行 curl http://localhost:8080,或在本地(需端口映射)访问 http://服务器ip:8080,能获取 8301 端口的响应即成功。
  3. 排查问题:若访问失败,可通过 sudo journalctl -u caddy -f 查看caddy日志,定位错误原因(如端口被占用、8301服务未启动等)。

五、关键注意事项

端口放行:若使用80/443端口(默认http/https端口),需确保服务器防火墙/安全组放行对应端口:

# ubuntu/debian 放行80端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

https自动配置:只需在caddyfile中填写已解析到服务器ip的域名,caddy会自动申请并续期ssl证书,无需手动配置,将 http 自动重定向到 https

反代高级配置:若需路径转发(如 /api 转发到 localhost:8301/api),无需额外配置,caddy默认保留完整路径;若需修改路径,可参考:

yourdomain.com {
    reverse_proxy localhost:8301 {
        # 将 /api/* 转发到 /v1/api/*(示例)
        rewrite /api/* /v1{uri}
    }
}

总结

  1. 核心指令:reverse_proxy localhost:8301 是实现caddy反代本地8301端口的关键。
  2. 配置文件:默认路径 /etc/caddy/caddyfile(系统级),也可自定义配置文件灵活部署。
  3. 启动方式:默认配置用 systemctl start caddy,自定义配置用 caddy run/start --config 配置文件路径
  4. 验证:通过浏览器或 curl 访问caddy监听的端口/域名,确认能否获取8301服务的响应。

以上就是linux使用caddy实现反代本地localhost:8301的详细内容,更多关于linux caddy反代本地localhost:8301的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com