小白求教!!!nginx反代服务后,在cloudflare开启代理无法访问

求助!!!用一键脚本让nginx反代newapi、lobechat等服务后,在cloudflare域名DNS开启代理无法访问,仅在关闭cloudflare代理的情况下可以访问 :sob:

背景

事情是这样的,早先在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有关 :sob:

还想着再挂个alist和图床到域名上呢 :sob:
但话说,线路比较好的话是不是也没必要开启cloudflare代理。开启cdn代理更多是安全考量防止追查到真实ip?

12 Likes

!!!还真是加密模式的锅 :sob:

改成完全模式后就可以了,亏我白折腾到这么晚
仔细想想之前问chatgpt的时候,c老师已经提过这个建议但却没有尝试,有时候不动手真的与答案失之毫厘差之千里

3 Likes

问题迎刃而解

:melting_face:围观一下,设置有一个自动选择。 :face_with_peeking_eye:

这反代配置似曾相识啊 哈哈

要什么一键配置啊,建议试试1panel