求助!!!用一键脚本让nginx反代newapi、lobechat等服务后,在cloudflare域名DNS开启代理无法访问,仅在关闭cloudflare代理的情况下可以访问 
背景
事情是这样的,早先在vps上用docker部署了newapi和lobechat服务,但一直用ip访问很不方便,遂在cloudflare上买了个域名,想着顺便搭个哪吒探针。
加密模式为默认的灵活
由于不熟悉操作,nginx配置用的是油管主的的一键脚本
科技lion官方一键脚本上线!VPS监控测试建站维护于一身的全能工具箱
curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
部署探针的时候开启nginx反代是没问题的,因为跟着视频教程也没有开启cloudflare代理。
尝试用nginx给lobechat、newapi反代
然后想着继续给lobechat、newapi做反代,于是问题就来了。同样用前述的一键脚本配置nginx后,在cloudflare开启代理就会无法访问,且显示重定向次数过多。关闭cloudflare代理后,使用仅DNS解析就可以正常通过域名访问,直接通过ip + 端口也可以正常访问(当然这样就没走cloudflare了)
以newapi为例,newapi和nginx都部署在docker
AzureUS@AzureUS:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
730ad4b8c692 nginx:alpine "/docker-entrypoint.…" 2 hours ago Up 46 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:443->443/udp, :::443->443/udp nginx
67125827b273 calciumion/new-api:latest "/one-api" 16 hours ago Up 16 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp new-api
给newapi配置反代后,配置文件如下,由一键脚本生成,域名和ip我码了一下
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
listen 443 quic;
listen [::]:443 quic;
server_name api.马赛克linden.com;
ssl_certificate /etc/nginx/certs/api.马赛克linden.com_cert.pem;
ssl_certificate_key /etc/nginx/certs/api.马赛克linden.com_key.pem;
# HTTP 重定向到 HTTPS
if ($scheme = http) {
return 301 https://$host$request_uri;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://本机ip:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# proxy_cache my_proxy_cache;
add_header Alt-Svc 'h3=":443"; ma=86400';
}
client_max_body_size 1000m;
}
没有对lobechat和newapi做额外处理。
猜测是不是和配置中HTTP 重定向到 HTTPS有关 
还想着再挂个alist和图床到域名上呢
但话说,线路比较好的话是不是也没必要开启cloudflare代理。开启cdn代理更多是安全考量防止追查到真实ip?