我有一个简单的 nginx 配置,用作代理来处理 ssl 请求。问题是,当我登录 phpmyadmin 时https://files.mysite.com/phpmyadmin
,它会将我重定向到http://files.mysite.com:443
并抛出一个:
400 Bad request: The plain HTTP request was sent to HTTPS port
我在这里和超级用户上查看过,找不到任何适合这个问题的东西。以下是 nginx 配置文件:
server {
listen 0.0.0.0:80;
server_name files.mysite.com;
return 301 https://files.mysite.com$request_uri;
}
server {
listen 0.0.0.0:443 ssl;
server_name files.mysite.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/files.mysite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/files.mysite.com/privkey.pem;
root /home/mysite/mysite.com/files;
index index.html;
location ^~ /phpmyadmin {
root /usr/share/;
index index.php;
include conf-available/php5.conf;
}
}
我在所有子域上使用各种网络工具几乎相同的配置,并且没有任何问题,所以我真的很困惑!
谢谢您的帮助!
编辑:我被要求显示wget -S files.mysite.com
输出这里是
显然,它从 http:80 重定向到 https:443,但由于某种原因又切换回 http:443
EDIT2:实际上它并没有重定向到 http:443 wget -S
,只有当我成功登录 phpmyadmin 时才能实现这一点