Windows下安装caddy及反代tomcat等服务

为啥写

这个东西这么简单,为什么还要写下了呢?有如下几个原因,看官您挑一个信就好了

  1. 作者脑子不好用,属鱼的,只有7秒中的记忆。(得出鱼只有7秒记忆这个结论的人绝对没养过鱼)

  2. 该内容对作者来说太高深,要一点点记下来。

  3. 发现blog内容太少了,水一篇。(话说感觉现在是不是只有程序猿还在写BLOG了。)

正题

安装

Windows下的,最简单了,下载,解压。下载页面地址 下载时候可以勾选自己喜欢的模块。

我解压时放在了 D:\caddy\ 之中,可执行文件位置是 D:\caddy\caddy.exe

配置文件我直接放在了caddy下面 D:\caddy\Caddyfile

配置

原来tomcat 在80口,修改配置,改到了8080口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:80 {
gzip
proxy / 192.168.1.2:8080 {
transparent
}
proxy /info 192.168.1.2:3030 {
without /info
}
errors d:/caddylog.log {
rotate_size 50 # Rotate after 50 MB
rotate_age 30 # Keep rotated files for 30 days
rotate_keep 5 # Keep at most 5 log files
rotate_compress # Compress rotated log files in gzip format
}
}

需要注意几点:

  1. 日志的位置我直接记caddy目录里面了,没有详细去配置,需要的时候可以改一下

  2. 开始没有加transparent,发生过登录后自动跳转到8080口的尴尬事。这个transparent是一个预设,可以按需求替换为一下的一个或几个

    1
    2
    3
    4
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
  3. 配置到/info的信息是我另一个拿NodeJS捏的小工具,配置中的without /info指将地址传给3030的服务端时,将/info的前缀去掉。

建为服务

查了下,采用了来自mholt/caddy的方法

是用的nssm来做增加服务的,NSSM的下载地址

步骤是:下载压缩包(注意win10以上选用prelease build 2.2.4-101版本),我直接解压到了d:\caddy目录下面。

开启CMD,最好用管理员模式

1
2
3
4
5
D:\caddy>nssm install Caddy d:\caddy\caddy.exe
Service "Caddy" installed successfully!
D:\caddy>nssm set Caddy AppDirectory d:\caddy
Set parameter "AppDirectory" for service "Caddy".

可以用nssm set Caddy AppParameters -conf=d:\caddy\Caddyfile 来设定启动时需要的参数。

添头

一个内部的服务器,开个filemanager也是很方便的么。

安装

在下载caddy时,勾选FileManager就行了。

配置

1
2
3
4
5
6
:5000 {
filemanager / D:/files {
database d:/caddy/fm.db
locale zh-cn
}
}

配置说明:

  1. 我把文件挂载到了5000端口,记得去防火墙打开端口
  2. 目录设定,我选择了D:/files文件夹,需要的改第二行就行了
  3. 数据库的位置我定在了d:/caddy/fm.db 要是忘了管理员密码的可以把数据库删了。
  4. locale是语言,内部用,选择了中文
坚持原创技术分享,您的支持将鼓励我继续创作!