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

 更新时间:2026年02月11日 08:26:09   作者:小满大王i  
本文详细介绍了在Linux中使用Caddy实现对本地localhost:8301服务的反向代理,首先,通过安装Caddy并验证安装成功,然后配置Caddyfile以实现反向代理,最后启动Caddy服务并验证反向代理是否成功,需要的朋友可以参考下

你想在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的资料请关注脚本之家其它相关文章!

相关文章

  • centos6.5服务器安装Nginx设置服务和开机自启的方法

    centos6.5服务器安装Nginx设置服务和开机自启的方法

    本篇文章主要介绍了centos6.5服务器安装Nginx设置服务和开机自启的方法,具有一定的参考价值,有兴趣的小伙伴可以了解一下
    2017-08-08
  • ubuntu中swap(虚拟内存)设置方法

    ubuntu中swap(虚拟内存)设置方法

    这篇文章主要介绍了ubuntu中swap(虚拟内存)设置方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Linux防火墙配置及放行端口方式

    Linux防火墙配置及放行端口方式

    文章介绍了firewalld防火墙的基本操作与配置方法,包括状态查看、开关及开机启动设置;端口放行(如80/90端口)、作用域指定、IP访问控制及规则删除;强调需重新加载规则使配置生效,并提供相关命令示例
    2025-08-08
  • Linux中关于sed命令的6个高级用法

    Linux中关于sed命令的6个高级用法

    这篇文章主要介绍了Linux中关于sed命令的6个高级用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Linux移动文件夹(目录)以及目录下的内容问题

    Linux移动文件夹(目录)以及目录下的内容问题

    这篇文章主要介绍了Linux移动文件夹(目录)以及目录下的内容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • centos7下rsync+crontab定期同步备份

    centos7下rsync+crontab定期同步备份

    最近需求想定期备份内部重要的服务器数据到存储里面,接下来通过本文给大家分享centos7下rsync+crontab定期同步备份,感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

    tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

    这篇文章主要给大家介绍了关于tomcat服务器如何配置字符集为utf-8彻底解决中文乱码问题的相关资料,文中先对字符集进行了简单的介绍,然后给大家详细介绍了解决的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • 详解Linux 主机网络接入配置

    详解Linux 主机网络接入配置

    这篇文章主要介绍了详解Linux 主机网络接入配置的相关资料,希望通过本文能帮助到大家,让大家实现网络接入配置的功能,需要的朋友可以参考下
    2017-10-10
  • Linux使用tcpdump捕获网络数据包的详细步骤

    Linux使用tcpdump捕获网络数据包的详细步骤

    在网络故障排查、协议分析或网络安全检测中,抓包工具是不可或缺的"利器",而tcpdump作为Linux系统中历史最悠久、功能最强大的命令行抓包工具,至今仍是工程师的首选,本文将从基础操作到实战技巧,带你掌握用tcpdump捕获网络数据包的完整流程,需要的朋友可以参考下
    2025-08-08
  • Linux使用systemd服务和crontab实现Shell脚本开机自动运行过程

    Linux使用systemd服务和crontab实现Shell脚本开机自动运行过程

    在Linux系统中,使用systemd和crontab是实现Shell脚本开机自启动的两种常用方法,首先,需创建一个Shell脚本,将其放置在适当目录,通过编写.service文件并将其移动到/etc/systemd/system/目录下,可以设置为systemd服务
    2024-09-09

最新评论