解决网站因重定向次数过多无法访问的方法

tengxunyun cera

博客的 SSL 证书快过期了,正好有空就给换了一下,结果就因为换了个证书网站无法访问了,提示重定向次数过多,看了一下请求好多个 301 请求

先检查一下 Nginx 的配置,看了一下没什么问题啊,之前一直是这样的,就是换了个证书 怎么会重定向那么多次呢

关掉 HTTPS 访问,因为加入了 HSTS,所以直接 307 到 HTTPS了,证明 80 端口是没有问题的

删掉所有的 301 重定向配置再试一下,结果还是有问题

在配置文件中加一个错误日志看看

error_log /www/wwwlogs/yangmaodang.org_error.log notice;

运行一下网站,去看一下错误日志是空的

这里还是要忍不住吐槽一下宝塔,真辣鸡,软件管理中的各软件设置居然不能点击了,控制台报错

Uncaught TypeError: bt.soft.set_soft_config is not a function at HTMLAnchorElement.onclick 

行吧,可视化操作不让我用,我用命令行呗,连接服务器,执行如下命令

/etc/init.d/nginx configtest

测试一下这个配置有什么问题,这下终于有提示了

[[email protected] ~]# /etc/init.d/nginx configtest 
Test nginx configure files... 
nginx: [warn] conflicting server name "yangmaodang.org" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "yangmaodang.org" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "yangmaodang.org" on 0.0.0.0:80, ignored
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

意思是重复绑定了server name,但这个警告不会影响到服务器运行

我的配置文件确实是两个server配置,发现第一个server中还有一个 301 的重定向

server {
    listen 80;
    listen 443 ssl http2;
    server_name qq52o.me yangmaodang.org yangmaodang.org;
    return 301 https://yangmaodang.org$request_uri;
}

server {
    server_name yangmaodang.org yangmaodang.org yangmaodang.org;
    # 以下忽略

之前这样也没什么问题,现在感觉有点多余,把第二个server和第一个server进行合并,去掉 301 和多余的server_name

重载 Nginx 服务以后访问就正常了,尴尬,配置坑死人

这个跟我之前遇到情况一样,生成分页多加了一个/,导致直接缺省协议了

比如正常的分页是/crm/list/?page=2,缺省协议以后//crm/list/?page=2

正常分页访问的是域名加上这个/crm/list/?page=2,而缺省协议会直接访问http://crm/list/?page=2,导致分页出错

刚开始我以为是方法的问题,结果后来让大佬找了一下,告诉我是 Nginx 配置的问题,反向代理的时候多了一个/

就说这些,多检查配置基本上不会有多大问题

cera aliyun tengxunyun cloudiplc

相关推荐

CentOS 7|Debian 9|启用原生Google BBR|方法|实现TCP加速

一)更新CentOS 7内核为支持BBR的内核 1、查看Centos内核 uname -r 2、如果低于4.10,则更新内核 rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum –enablerepo=elrepo-kernel install kernel-ml -y 3、安装完成后,查看已安装的内核: rpm -qa | grep kernel 如果看到 kernel-ml-5.3.5-1.el7.elrepo.x86_64 字样的,即是成功。 4、更新开机启动 egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \’ 会看到类似这样的 CentOS Linux (5.3.5-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-96820b9851c24560b5f942f2496b9aeb) 7 (Core) 设置CentOS Linux (5.3.5-1.el7.elrepo.x86_64) …

cloudflare最新ddns脚本 2020.5.2号 解决老版本脚本无法更新ip

1、前言 服务器 IP 总是变,没事就会变个新的,这时候就需要一个 Dynamic Domain Name Server 来保证实时的 #DNS# 更换。 当然首先这个需要你的 DNS 解析商做配合,本文则采用 Cloudflare+#DDNS#+Shell 2、准备 准备工具 Cloudflare 的 Global #API# Cloudflare 解析的域名一个 前提要素 Curl Wget 已安装 3、#DDNS# 获取新 IP 地址 Shell 脚本 下载地址:[ 链接 ] #!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # # Dynamic Domain Name Server (Cloudflare API) # # Author: StarryVoid <[email protected]> # Intro: https://blog.starryvoid.com/archives/313.html …

WordPress博客网站使用Memcached和Redis缓存哪个更好|

今天小白得到了一台4核8G的服务器,马上安装上宝塔。接下来就遇到了一个选择困难综合征。到底给数据库安装那种缓存好。是Memcached缓存,还是Redis缓存?接下来小白将详细分析下这两种的区别。 首先,我们今天研究的大前提是#wordpress#博客,那么注定数据量不会太大。访问量也不是超多那种。 一、#Memcached#和#Redis#区别 1、数据存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,这样能保证数据的持久性。 2、数据支持类型 Memcache对数据类型支持相对简单。 Redis有复杂的数据类型。 3、使用底层模型差别 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。 4、#value#值大小不同 redis最大可以达到1GB,而memcache只有1MB。 二、Memcached和Redis哪个更适合WordPress 根据上面对比我们发现memcached为内存存储,其占用量最大就512MB内存。而Redis可以无限大占用内存和硬盘空间。memcached更适合存储简单的值。所以小白得出的结论是针对内容不多的WordPress博客建议选择用memcached做MySQL数据库的缓存。 但是这里也有一种例外,有些采集站大佬。因为数据量超多。大部分都超过10万篇文章。那种还是用Redis吧。毕竟有这么多内容的服务器配置应该也不低吧。 以上就是今天要介绍的所有内容,如果有错误欢迎留言指出。

微信扫一扫,分享到朋友圈

解决网站因重定向次数过多无法访问的方法