我们很难在我们的网站上调试 400 个错误。我们有很多这样的错误:
10.0.0.1 - - [08/Oct/2018:14:28:07 +0200]
"GET /les-news/palmares/detail/article/la-lettre-de-motivation-ideale-pour-une-demande-de-stage-5224/
HTTP/1.1" 400 131844
"https://www.google.com/"
"Mozilla/5.0 (Linux; Android 7.0; TECNO K7 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36"
Run Code Online (Sandbox Code Playgroud)
一位用户通过电子邮件报告了这个问题,并通过在他的浏览器中重置它的 cookie 来修复它,其他重置 cookie 是不够的(但我们不能确定它是否正确完成)。
该平台非常复杂,由F5 负载均衡器处理,具体取决于请求转发到不同服务器的路径。
我首先想要的是能够重现错误,因为在访问 URL 时,我们没有任何 URL 并且一切正常。
我们注意到大部分错误来自 Android/Chrome:大约 85% 的所有 400 个错误。
这是一个完整的日志:
timestamp October 8th 2018, 16:26:52.000
version 1
_id BmQSVGYB5vF-Dw_g1gVi
_index f5_access-2018.10.08
_score -
t _type doc
t agent Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile …
Run Code Online (Sandbox Code Playgroud) 我实际上是RewriteMap
在我的 vhost 中使用一个指令来重定向 800 个 URL 的列表。它安静地工作:
RewriteEngine On
RewriteMap redirects dbm=db:/data/apps/project/current/configuration/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
Run Code Online (Sandbox Code Playgroud)
我使用redirect.txt
包含映射的文件。然后将其转换为db文件:
httxt2dbm -f db -i /data/apps/project/current/configuration/etc/httpd/conf/redirects.txt -o /data/apps/project/current/configuration/etc/httpd/conf/redirects.db
Run Code Online (Sandbox Code Playgroud)
例如对于这种网址,就可以了:
/associations/old_index.php /
Run Code Online (Sandbox Code Playgroud)
但是当 URL 包含空格时它不起作用:(我想它与其他特殊字符相同)
/Universités%20direct /
Run Code Online (Sandbox Code Playgroud)
这个案子怎么处理?
我跟着这个文档,但无法使我的图像通过 HTTPS 提供服务。
我有以下/etc/default/minio
配置文件:
MINIO_ACCESS_KEY="admin"
MINIO_VOLUMES="/usr/local/share/minio/"
MINIO_OPTS="-C /etc/minio --address vps.ovh.net:443 --console-address :9001"
MINIO_SECRET_KEY="secret"
Run Code Online (Sandbox Code Playgroud)
如果我指定另一个端口(例如 9000 而不是 443),这次它可以工作,但该文件是通过 HTTP 提供的:
http://vps.ovh.net:9000/images/product/e53b9fde-4df1-4e54-bef4-76cd8c97cdb2.jpg
我已经在以下位置生成了证书/etc/minio
:
pwd
/etc/minio/certs
ll
rw------- 1 minio-user minio-user 1704 Feb 3 11:05 private.key
-rw-r--r-- 1 minio-user minio-user 5522 Feb 3 11:05 public.crt
Run Code Online (Sandbox Code Playgroud)
有什么想法或建议吗?
400 ×1
amazon-s3 ×1
apache-2.4 ×1
apache2 ×1
https ×1
logging ×1
minio ×1
mod-rewrite ×1
redirect ×1
storage ×1
virtualhost ×1