AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-96609

Timothy R. Butler's questions

Martin Hope
Timothy R. Butler
Asked: 2021-07-07 09:11:40 +0800 CST

如何避免在 NGINX 中使用“Vary: Cookie”标头进行疯狂缓存

  • 0

我知道Vary: Cookie它不太受欢迎,因为它会导致缓存用户可能报告的每个 cookie 变体。另一方面,如果没有它,我不得不Cache-Control: no-cache告诉我的 NGINX 缓存服务器完全跳过可能有用户登录的缓存内容(顺便说一下,我网站的每个页面,因为顶部有一个帐户框这页纸)。

我只在用户登录时发送 cookie,因此大多数页面视图都会从缓存中受益。我想缩小范围,以便只有两种变体:“差异”是没有cookie 的用户的缓存版本和有 cookie 的用户的非缓存版本(例如,用户已登录并拥有身份验证 cookie)。

如果我在我的 Perl 程序中添加“Vary: Cookie”,有没有办法告诉 NGINX 在这种情况下它应该只关注sessionIdcookie 是否存在?类似于 - 制作伪标题 - 的东西Vary: Cookie('sessionId')?如果有一种方法可以在 NGINX 会尊重的脚本生成的标头中实现这一点,我想我更喜欢将它放在 NGINX 配置中,但任何解决方案都会受到赞赏。

我不完全确定如何测试我是否会导致 NGINX 因缓存而疯狂,但我想知道这些方面是否可行:在未登录的查看器上,脚本发送Vary: Cookie,但在查看器上登录后,它会发送该标头和Cache-Control: no-cache. NGINX 会理解这是告诉它缓存第一个响应而不是变体吗?或者我会以我现在没有抓住的方式搞砸一些事情吗?

更新:这是我的一个服务器块的示例:

server {
    server_name myservername.tld
    listen 80;

    location / {
        proxy_cache $PROXY_CACHE;

        proxy_cache_valid 200 302 60m;
        proxy_cache_valid 404 1m;
        proxy_cache_use_stale error timeout http_429 http_500 http_502 http_503 http_504;
        proxy_cache_background_update on;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 1;
        proxy_cache_lock on;

        proxy_pass $scheme://$APACHE_PROXY_REQ_IP:$APACHE_PROXY_REQ_PORT;
    }

}
cache nginx http-headers
  • 1 个回答
  • 665 Views
Martin Hope
Timothy R. Butler
Asked: 2021-07-06 09:11:11 +0800 CST

NGINX 重定向到子文件夹中的缓存文件

  • 2

我有一个程序可以创建优化版本的图片,这些图片会上传到/images/网络服务器上的文件夹中。它遍历子文件夹,并在每个子文件夹中创建一个.optimized包含优化版本的文件夹,如果它至少比原始版本小一定大小。我的目标是检查是否存在这样的优化版本,如果存在则提供它,否则提供原始版本(在某种意义上gzip_static,如果它存在,如何提供文件的 .gz 版本)。

我在 Apache 前面将 NGINX 作为代理运行,所以虽然我习惯于使用 htaccess 处理此类问题,但我试图在 NGINX 中本地执行它以避免服务器不得不将请求移交给 Apache。在.htaccess,我可以做这样的事情:

RewriteCond %{REQUEST_FILENAME} ^(/images/(?:.*/)?)(.*?)$ [OR]
RewriteCond $1.optimized/$2 -f
RewriteRule .* $1/.optimized/$2 [L]

有没有直接在 NGINX 中处理这个问题的好方法?我发现的大多数类似用例都将所有缓存/优化文件保存在一个缓存文件夹中,这与我描述的结构相反。

optimization nginx mod-rewrite
  • 1 个回答
  • 196 Views
Martin Hope
Timothy R. Butler
Asked: 2021-04-12 07:00:46 +0800 CST

2021 年 FastCGI 还好吗?

  • 0

似乎这里关于 FastCGI 的大多数讨论都在近十年前被冻结了,所以作为一个刚刚决定开始使用它的人,我想知道我是否在面对不可预见的安全性或兼容性问题时犯了错误。以下是一些引起我关注的事情:

  • 看起来像 Perl CPAN 模块这样的库已经好几年没有更新了。
  • Perl 模块在UTF-8 输出变得正常多年后抱怨说,缺乏更新似乎并没有为修复提供很大的希望。
  • 我还注意到,Mojolicious 几年前剥离了对 FastCGI 的支持,因为它不符合代码库的质量标准。我目前不使用 Mojolicious,但我发现这很值得注意。

今年终于觉醒到 FastCGI 是不是已经选择了死胡同?

我有使用 PHP 的客户,所以我对 PHP 支持很感兴趣,但我主要感兴趣的是是否有更好的面向未来的替代方案来支持 Perl,这是我用于大多数 CGI 程序的语言在服务器上。也许我想多了,FastCGI 就可以了。到目前为止,我使用mod_fcgid的是 Apache,尽管我的目标是让它直接与 Nginx 一起运行,我已经在使用它来提供静态内容。

perl fastcgi nginx mod-fcgid
  • 1 个回答
  • 336 Views
Martin Hope
Timothy R. Butler
Asked: 2017-10-01 08:55:04 +0800 CST

升级失败后尝试重新安装 FreeNAS 11

  • 3

昨天,我尝试将我的 FreeNAS 9.10.2 系统升级到 FreeNAS 11。升级未能将引导环境设置为 FreeNAS 11,所以我在看到重新启动后手动进行了升级,只是让我回到了 FreeNAS 9.10.2。这是一个错误:现在它启动到似乎是 FreeNAS 11,但是当我尝试进入 Web GUI 时,我只是得到“内部服务器错误”。我能够通过 SSH 连接到服务器,此时我尝试通过键入来触发另一次升级sudo freenas-update -v update。当我尝试这个时,这是我得到的:

[freenasOS.Configuration:692] TryGetNetworkFile(['http://update-master.ixsystems.com/FreeNAS/FreeNAS-9.10-STABLE/LATEST'])
[freenasOS.Configuration:822] TryGetNetworkFile(['http://update-master.ixsystems.com/FreeNAS/FreeNAS-9.10-STABLE/LATEST']):  Read 2360 bytes total
[freenasOS.Configuration:692] TryGetNetworkFile(['http://update-master.ixsystems.com/updates/ix_crl.pem'])
[freenasOS.Configuration:84] CheckFreeSpace(path=/tmp/tmpa9lojvfr.pem, pool=None, required=1028)
[freenasOS.Configuration:822] TryGetNetworkFile(['http://update-master.ixsystems.com/updates/ix_crl.pem']):  Read 1028 bytes total
[freenasOS.Update:977] Going to try checking cached manifest /var/db/system/update/MANIFEST
[freenasOS.Update:1001] Got this exception: [Errno 2] No such file or directory: '/var/db/system/update/MANIFEST'
[freenasOS.Configuration:692] TryGetNetworkFile(['http://update.ixsystems.com/FreeNAS/Validators/ValidateUpdate-dAn5lU.txt', 'http://update-master.ixsystems.com/FreeNAS/Validators/ValidateUpdate-dAn5lU.txt'])
[freenasOS.Configuration:84] CheckFreeSpace(path=/var/db/system/update/ValidateUpdate, pool=None, required=187)
[freenasOS.Configuration:822] TryGetNetworkFile(['http://update.ixsystems.com/FreeNAS/Validators/ValidateUpdate-dAn5lU.txt', 'http://update-master.ixsystems.com/FreeNAS/Validators/ValidateUpdate-dAn5lU.txt']):  Read 187 bytes total
[freenasOS.Update:1034] DownloadUpdate:  No update available
No updates available

有什么方法可以强制(从命令行)让系统再次通过 FreeNAS 11 安装过程,以便它填写以前版本中明显没有正确安装的任何内容?如果我可以通过 SSH 来做到这一点,那就太好了——系统是无头的,所以如果我可以利用 SSH 连接来修复损坏而无需从头开始,那将非常有帮助。

(我尝试将 /boot/grub/grub.cfg 编辑到set default以前的 FreeNAS 9.x 条目,以便系统启动到以前的版本,但是当我重新启动时似乎没有效果。当然,无论如何,这仍然无法解决不正确的 FreeNAS 11 安装。)

freebsd
  • 2 个回答
  • 3002 Views
Martin Hope
Timothy R. Butler
Asked: 2012-09-25 22:35:11 +0800 CST

拉光纤电缆

  • 2

对光纤电缆有丰富经验的人告诉我,电缆需要以某种方式穿过导管而不是像使用 Cat 6 那样拉动。这是真的吗?如果是这样,将电缆穿过的最佳方法是什么?

fiber
  • 2 个回答
  • 299 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve