1panel反代打不开网站

image

开df代理也是不行,什么原因。正常直接ip:端口可以访问

server {
    listen 80 ; 
    listen 443 ssl http2 ; 
    server_name pan.xxx.xxx; 
    index index.php index.html index.htm default.php default.htm default.html; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Host $server_name; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection $http_connection; 
    access_log /www/sites/pan.xxx.xxx/log/access.log main; 
    error_log /www/sites/pan.xxx.xxx/log/error.log; 
    location ^~ /.well-known/acme-challenge {
        allow all; 
        root /usr/share/nginx/html; 
    }
    include /www/sites/pan.xxx.xxx/proxy/*.conf; 
    if ($scheme = http) {
        return 301 https://$host$request_uri; 
    }
    ssl_certificate /www/sites/pan.xxx.xxx/ssl/fullchain.pem; 
    ssl_certificate_key /www/sites/pan.xxx.xxx/ssl/privkey.pem; 
    ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1; 
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:xxx
SHA256:xxxSHA384:xxxAES256-SHA384:xxxSHA256:xx:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED; 
    ssl_prefer_server_ciphers on; 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 
    error_page 497 https://$host$request_uri; 
    proxy_set_header X-Forwarded-Proto https; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}
10 Likes

重定向太多,循环起来了吧

1 Like

这个直接用的openresty 全都是默认配置,重定向,应该该只有http–>s->local /

https要么是原生服务提供的,如果是代理的,https一般就是代理http的,一般很少有再代理一次https的。还是检查一下自己的配置,浏览器的错误代码很明显。

1 Like

后端代理0.0.0.0改成localhost试试

1 Like

你把反代那里改成https试试?

1 Like

试过了,不太行

ip那用127.0.0.1

1 Like

刚试了一下,不太行

所有反代的网页都打不开就是路由问题,上次遇到过

1 Like

有一个反代改了127.0.0.1之后打开了,另一个还是不行

别用0.0.0.0和127.0.0.1,locathost这些特殊地址,用实际ip

实际IP我把端口关了还能访问吗

是不是开了cloudflare

1 Like

这种情况一般是用了cf代理然后自己配了证书导致的。有两种方法
1.在cf的域名托管那里把ssl/tls选成灵活,然后关闭自己配的证书(对应1panel的https选项)
2.把cf的ssl改成完全,然后自己配证书。
第一种会让用户那里显示有证书,网站用的是https访问,但是实际上cf和你的服务器之间还是用的http,用户和cf之间用的是https,所以不太安全。
第二种就是你所有的站点必须配好证书,不然访问的时候就会显示cf ssl handshake failed
还是推荐自己整一个通配符域名用第二种方法,一个*.xxx.com就可以配到所有网站上,1panel也可以自动续期

2 Likes

选这个就行了

4 Likes

大佬太强了 :tieba_087:

在Cloudflare的"灵活"SSL模式下,Cloudflare到你的服务器之间的连接是使用HTTP协议,而访问者与Cloudflare之间的连接则是使用HTTPS协议。因此,如果你的服务器同时设置了强制HTTPS(通过配置SSL证书或通过服务器端配置强制重定向到HTTPS),这就可能导致一个问题。

当尝试通过HTTPS访问你的网站时,请求首先安全地到达Cloudflare。然后,Cloudflare以HTTP形式转发请求到你的服务器。如果你的服务器配置为强制HTTPS,它会尝试将这些HTTP请求重定向到HTTPS。这个HTTPS请求又会被发送到Cloudflare,Cloudflare再次将其转发为HTTP到你的服务器。这就形成了一个循环,导致浏览器报告“重定向过多”的错误。

所以你可以选择将强制HTTPS的选项关闭,也可以解决问题,但是依然有泄露信息的风险,因为这样设置以后CF与你的服务器之间依然是用的HTTP协议通信

2 Likes

开代理时好时坏,我直接解析的

佬这种死循环怎么解