2019-12-25 21:48:39

Caddy 简单反向代理

参考:https://zixizixi.cn/caddyserver-r-proxy-https

一、获取Caddy

https://github.com/caddyserver/caddy/releases

# 目前2.0 还处于beta 阶段,1.0.4 为最新稳定版
wget https://github.com/caddyserver/caddy/releases/download/v1.0.4/caddy_v1.0.4_linux_amd64.tar.gz

# 安装Caddy 到本地命令
tar xf caddy_v1.0.4_linux_amd64.tar.gz
sudo mv caddy /usr/local/bin/

# 清理解压产生的多余文件
rm -rf CHANGES.txt  LICENSES.txt  README.txt init/ caddy_v1.0.4_linux_amd64.tar.gz


二、配置Caddy
当前目录下创建文件Caddyfile
# us2.suzhi82.tk 需先在DNS SERVER 上设置好对应服务器的IP,否则https 证书无法申请
# 使用https 进行反向代理服务器上127.0.0.1:8000 这个服务,默认80 会转到443 端口
https://us2.suzhi82.tk {
  gzip 
  proxy / 127.0.0.1:8000/
}

# 如果只想使用http 进行反向代理,默认只开启80 端口
http://us2.suzhi82.tk {
  gzip 
  proxy / 127.0.0.1:8000/
}


三、启动Caddy
# caddy 会默认读取当前目录下的Caddyfile
sudo caddy  # Email 可不写,直接回车即可

解决:WARNING: File descriptor limit 1024 is too low for production servers.
# 查看系统参数
ulimit -a

# 修改系统open files 限制,默认1024
ulimit -n 8192

# 再次启动Caddy 就不会有生产环境的Warming 了
sudo caddy


四、反向代理样例演示
# python3.8 + virtualenv + Django2.2.3

# 创建虚拟环境并安装Django
cd && mkdir venvs && cd venvs
virtualenv testenv
source testenv/bin/activate
pip install django==2.2.3

# 创建Django 项目并启动
django-admin startproject testproj
cd testproj
python manage.py runserver

# 至此就启动了一个只有服务器自己才能访问的127.0.0.1:8000 服务

# 新建一个终端,通过Caddy 反向代理以上服务到公网
cd && cat > Caddyfile << EOF
https://us1.suzhi82.tk {
  gzip 
  proxy / 127.0.0.1:8000/
}
EOF

ulimit -n 8192  # 参上,执行一次即可
sudo caddy  # Email 可不写,直接回车


------------------------------------------------------
Finish!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐