gpt4 book ai didi

django - 重定向到正确的本地化 : Nginx, Apache、memcached 和 Django

转载 作者:行者123 更新时间:2023-12-04 06:28:29 26 4
gpt4 key购买 nike

我的站点使用 URL 中的字符串本地化(例如 /DE/certificate 获取德语版本,/US/certificate 获取 en-US 等)对于站点上的某些 URL,省略本地化部分会重定向到最佳猜测(通常 /US/<url> )但对于其他人,我只会得到一个空白页。

这是一个 Django 站点。 Django 正在运行 mod_python在 Apache 上,监听端口 8000。Nginx 在端口 80 上。当请求进来时,Nginx 会检查页面的 memcached,如果它在缓存中,则直接从缓存中提供服务。如果 memcached 未命中,Nginx 会将请求代理回 Apache。 Django 存储了大多数 GET 的输出请求到 memcached。该站点的流量非常大,这种方法可以帮助我们从相对低功耗的服务器中获得最大 yield 。

上面描述的问题是不是 如果我跳过 Nginx 和缓存,并在端口 8000 上直接向 Apache 发送请求,则会出现。这让我怀疑问题出在 Nginx/memcached 层。

观察 Apache 对成功请求的日志显示,未本地化的请求返回了 302,以及更正 URL 的新请求。查看 Nginx 的失败请求日志显示 200 响应,以及明显为空的响应。我的预感是在 memcached 中存储了一个空页面。有没有办法调查 memcached 中的键来确认这个预感,或者我应该寻找一些其他信息来调试问题?

这是nginx配置的相关部分:

    location / {
if ($request_method = POST) {
proxy_pass http://production;
break;
}
default_type "text/html; charset=utf-8";
set $memcached_key "/key-$uri";
memcached_pass localhost:11211;
error_page 404 502 = /django;
}

location = /django {
proxy_pass http://production;
break;
}

包含我的 Django 缓存中间件对我有帮助吗?我是按照 this article 设置的几乎完全正确。

最佳答案

使用“@django”(在两行)而不是“/django”

关于django - 重定向到正确的本地化 : Nginx, Apache、memcached 和 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com