[halo-dev/halo]halo使用域名访问后端无法正常登陆跳转的BUG

2024-04-12 706 views
6
是什么版本出现了此问题?

2.4.2

使用的什么数据库?

MySQL 8.x

使用的哪种方式部署?

Docker

发生了什么?

当我使用这个域名登录时 image 登陆成功但是不会跳转

当我把蓝色的 /login删除并刷新网页 登陆成功

使用IP访问不会出现这种情况

回答

1

无法复现,可能和反向代理的配置有关,你可以提供一下你反向代理的配置。

2

使用的宝塔面板 image

`
#PROXY-START/

location /
{
    proxy_pass http://127.0.0.1:8090;
    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 REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;
    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        expires 1m;
    }
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 2m;
}
#PROXY-END/
`

还有一个地方是这里 image

` server { listen 80; listen 443 ssl http2; server_name blog.a.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/blog.a.com;

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate    /www/server/panel/vhost/cert/blog.a.com/fullchain.pem;
ssl_certificate_key    /www/server/panel/vhost/cert/blog.a.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDHXXXXXXXXXXXXXXXXXXXXXXXXXX(打码);
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497  https://$host$request_uri;
    #SSL-END

#ERROR-PAGE-START  错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START  PHP引用配置,可以注释或修改
#清理缓存规则

location ~ /purge(/.*) {
    proxy_cache_purge cache_one $host$1$is_args$args;
    #access_log  /www/wwwlogs/blog.a.com_purge_cache.log;
}
#引用反向代理规则,注释后配置的反向代理将无效
include /www/server/panel/vhost/nginx/proxy/blog.a.com/*.conf;

include enable-php-00.conf;
#PHP-INFO-END

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/blog.a.com.conf;
#REWRITE-END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
    return 404;
}

#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
    allow all;
}

#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
    return 403;
}

access_log  /www/wwwlogs/blog.a.com.log;
error_log  /www/wwwlogs/blog.a.com.error.log;

}`

7

不太清楚这些配置的影响范围,不过你可以考虑将下面的配置注释之后试试:

include /www/server/panel/vhost/rewrite/blog.a.com.conf;
6

好像也是上不去

2

a.com可以访问 a.com/console/#/login也可以访问 并发起登陆请求 现在确认了,登陆是可以登陆的,但不会自动跳转,过一段时间(大概两分钟),把/login删了,就进的去了。

2

反向代理的配置中看到了一些奇怪的配置:

proxy_ignore_headers Set-Cookie Cache-Control expires;

这是把 Set-Cookie 都移除掉了。

6

/kind support

4

好像有用了,手机上测试通过,回去电脑再试一试。万分感谢!!

额外的问题:如果我想禁止 ip:端口 访问 最简单的办法是不是去阿里云安全组禁止访问8090端口就可以了。而不是去nginx配置

1

最简单的办法是不是去阿里云安全组禁止访问8090端口就可以了

理论上是的。