前言

系统服务器是阿里云Ubuntu 16.04.7 LTS,本地是windows11,同时开启了wsl2,本地 mysql,redis,postgersql都是安装在wsl下面

windows下面是可以通过localhost或127.0.0.1访问服务

开放端口是通用的3306,6379,5432标准端口

http标准端口是80,https端口443

本地和阿里云服务器软件都是caddy2.7

本地和阿里云同步软件都是 syncthing

本地是frp客户端,服务器是linux版frp服务端,主要是实现本地开发使用泛解析域名.

本地和服务端都使用php7.2版本,方便测试和正式服环境一致不出错.

建立博客使用hugo软件,linux不安装,只安装本地,直接生成html,用syncthing同步就行.

阿里云安装php,mysql,redis三个软件不做多续.

caddy使用

安装最新的,windows和linux命令一样 linux 使用 ./caddy run caddy下载 https://github.com/caddyserver/caddy

caddy run 启动,可以用supervisor进程管理工具,能防止异常退出后自动重启
caddy start 后台,可以常驻后台
caddy stop 停止
caddy reload 重置,改变配置以后需要使用这个命令
caddy hash-password 密码
caddy list-modules 查看模块
xcaddy build --with github.com/caddy-dns/alidns #编译插件

windows系统在cmd下创建caddy服务,启动用net start caddy2,停止 net stop caddy2

set myPath=C:\app\caddy\
sc create caddy2 binPath= "%myPath%caddy.exe run --config %myPath%Caddyfile" start= auto

Caddyfile 配置文件,这是所有常见功能配置,一般情况下用不到全部

http://h5.api.shanliwawa.top {
        root * C:/app/caddy/www/h5  #网站目录
        file_server browse   #启用文件列表  file_server #静态服务器  file_server /static/* #只显示某个目录
        php_fastcgi 127.0.0.1:9009#php代理启动  php_fastcgi /blog/* 127.0.0.1:9009 #php代理
        reverse_proxy 127.0.0.1:8885 #反向代理
        encode gzip #启用压缩
        tls logove@qq.com #自动https  tls cert.pem key.pem 使用已有
        basicauth * {  #设置登陆账号和密码 ,caddy hash-password生成的密码才可以
                admin $2a$14$fmGrN87xgxC3EalyYje2DeNxkzzFNUt2kj5bi3uxfCMRB2qntgIUS
        }
         log {
	output file ./access.log #日志
}
errors { #设置404 500 错误
    404 404.html
    500 /var/www/html/500.html
}
}
https://www.yoby123.cn { #301转向
redir https://yoby123.cn{uri}
}

泛解析配置用于阿里云服务器端,这里的证书使用acme生成泛解析证书,caddy也能但是要安装插件版本,有些麻烦,所以使用标准版本无任何第三方插件.

这里8088端口是frp的http代理,https代理使用8089. 这是我自己的泛解析阿里云服务端

caddy服务端

*.api.shanliwawa.top {
tls api.cer api.key
reverse_proxy http://127.0.0.1:8088
}

本地使用配置一个域名,这是我本地支持的泛解析配置,注意使用http开头,访问时候会自动转https,frp那边配置也是

caddy本地客户端

第二个是本地不使用反向代理配置,也能是https,如果http配置就是去掉s也是可以的,端口也可以换

http://home.api.shanliwawa.top {
        root * C:/app/caddy/www/home
        php_fastcgi 127.0.0.1:9009
        file_server browse
        encode gzip
}
https://127.0.0.1 https://localhost {
        root * C:/app/caddy/www/h5
        php_fastcgi 127.0.0.1:9000
        file_server browse
}
https://127.0.0.1:9003 {
        root * C:/app/caddy/www/h5
        php_fastcgi 127.0.0.1:9000
        file_server browse
}

本地frp客户端配置,不要配置https

frp本地客户端

[common]
server_addr = 阿里云IP自己填写
server_port =4433 阿里云端口和服务端一样
log_level = info
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = 111 本地账户
admin_pwd = 111 本地密码
login_fail_exit = false
tcp_mux = true
[web1]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = home

frp服务端配置

[common]
bind_port = 4433
vhost_http_port = 8088
vhost_https_port = 8089
subdomain_host =api.shanliwawa.top
#面板配置账号密码这是服务端的
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin