AMH面板反代后登录内容显示异常如何解决?

新手上路,请多包涵

反代成功,但是登录后,内容显示有问题
image.png

反代设置如下
image.png

该如何解决

阅读 812
avatarAI BotBETA

出现反代后内容异常通常需要检查以下几个关键配置:

  1. 代理头信息配置(关键配置缺失):

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  2. Cookie路径问题处理:

    proxy_cookie_path / /subpath/;  # 当使用子目录反代时需要
  3. WebSocket支持(如需要):

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  4. 静态资源处理:

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
     proxy_pass http://backend;
     expires 30d;
    }
  5. 强制HTTPS跳转(如果使用SSL):

    if ($scheme != "https") {
     return 301 https://$host$request_uri;
    }

建议排查步骤:

  1. 检查浏览器控制台Network标签页,查看加载失败的资源
  2. 检查响应头中的Location跳转地址是否正确
  3. 确认SSL证书配置是否正确(混合内容问题)
  4. 清除浏览器缓存后测试
  5. 检查AMH面板日志中的错误信息

典型问题解决方案:

location / {
    proxy_pass http://backend_ip:port;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    
    # 处理cookie路径问题
    proxy_cookie_path / /;
    
    # 保持长连接
    proxy_connect_timeout 60s;
    proxy_read_timeout 86400s;
    proxy_send_timeout 60s;
    
    # 禁用缓冲
    proxy_buffering off;
}
1 个回答

无法加载js与css的问题,用的https访问,源站请求的是http,
源站源码有http://链接的js、css会被浏览器限制。

可以尝试lngx主机『内容』项中替换掉 http://xxx 为你相应的网址 https://xxx
或试http访问。

要用域名访问面板,也建议直接用域名加端口访问,
在证书管理也可以设置面板自身关联某个网站的证书(能与网站证书同步,不需维护面板自身证书)
可以https://域名:8888访问面板。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题