为 Apache2 + FastCGI 设置启用数据压缩

2023-12-31

这个问题与我之前的帖子相关:Android ICS 的 CSS 加载问题 https://stackoverflow.com/questions/11575189/css-loading-issue-with-android-ics.

我遇到问题的地方Android ICS默认和Dolphin浏览器的CSS和JS渲染。此内容由我的服务器后端引擎提供,该引擎使用 (Apache2 + FastCGI + Python) 设置。

在搜索可能的问题时,我发现问题的主要原因是内容没有以压缩形式从服务器发送。

所以样品响应头看起来如下:

Connection  Keep-Alive
Content-Encoding    gzip
Content-Length  5997
Content-Type    text/css
Date    Sun, 29 Jul 2012 14:29:08 GMT
Keep-Alive  timeout=15, max=100
Server  Apache (Ubuntu)
Vary    Accept-Encoding

以及如果通过平面文件提供相同的内容。响应标头如下所示。所有浏览器都能正确呈现。

Accept-Ranges   bytes
Connection  Keep-Alive
Content-Encoding    gzip
Content-Length  1430
Content-Type    text/css
Date    Sun, 29 Jul 2012 14:28:57 GMT
Etag    "a9c06-176d-4c5e693c2a6c0"
Keep-Alive  timeout=15, max=100
Last-Modified   Sat, 28 Jul 2012 16:46:59 GMT
Server  Apache (Ubuntu)
Vary    Accept-Encoding

不知何故,Android ICS 的默认浏览器和海豚浏览器无法渲染内容(特别是 css、js 内容)。它适用于所有其他浏览器。

但本质上,后端引擎也存在一些问题,因为未压缩的数据被发送。在响应头中,有几个有趣的点值得一看:

  1. 响应标头包含显示“内容编码 gzip"
  2. 但Content-Length显示了资源的未压缩版本的长度。

为了解决我尝试过的问题架构上的一些小变化,在我认为可能是问题原因的地方。 我注意到,用 CGI 替换 fastCGI 解决了我的问题现在数据以压缩格式发送。


Problem

虽然问题已经解决了,但我绝对想要使用fastCGI。所以我正在寻找可以解决问题的可能的配置更改。 我在服务器的 Apache 设置中做了以下安排:

  1. 启用放气模块来自可用的 Apache 模块。
  2. My /etc/apache2/mods-enabled/deflate.conf文件具有以下文本:

    <IfModule mod_deflate.c>
              # these are known to be safe with MSIE 6
              AddOutputFilterByType DEFLATE text/html text/plain text/xml
              # everything else may cause problems with MSIE 6
              AddOutputFilterByType DEFLATE text/css
              AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
              AddOutputFilterByType DEFLATE application/rss+xml
    </IfModule>
    
  3. 我有以下几行使 fastCGI 与我的脚本一起工作/etc/apache2/sites-enabled/default file.

    <Files my_script_name.py>
        SetHandler fastcgi-script 
    </Files>
    
    FastCgiServer /path_to_script/my_script_name.py -processes 4 -socket /tmp/my_script_name.sock
    

Question

我尝试了各种配置更改,但似乎都没有解决我的问题。有什么我想念的吗使用 fastCGI 启用压缩?


最后,我在这里找到了问题的解决方案:http://wiki.catalystframework.org/wiki/deployment/apache_fastcgi http://wiki.catalystframework.org/wiki/deployment/apache_fastcgi

在这里,为了回答一个问题:为什么我的应用程序如此缓慢、提供空白页面和/或表现异常?在常见问题解答部分,他们明确指出了这一点。

mod_fastcgi and mod_deflate在某些版本下不能很好地共存 apache(例如 Debian Lenny stock 软件包)。解决方法是 不加载 deflate 模块。另一种解决方案是构建 和安装 mod_fastcgi 的最新快照版本(发现于http://www.fastcgi.com/dist/ http://www.fastcgi.com/dist/).

因此,按照帖子的建议,我更新了libapache2-mod-fastcgi包在服务器上,现在我在客户端获取具有正确响应标头值的压缩数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Apache2 + FastCGI 设置启用数据压缩 的相关文章

  • 设置高亮大括号的 vim 颜色主题

    如何更改突出显示大括号的 vim 配色方案 我希望实际编辑 vim 主题文件以使更改永久生效 问候 克雷格 匹配括号的自动高亮颜色称为MatchParen 您可以通过执行以下操作来更改 vimrc 中的颜色 highlight MatchP
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 正在使用 PIL 保存损坏的图像

    我遇到一个问题 操作图像像素导致保存损坏的图像 因此 我使用 PIL 打开图像 然后将其转换为 NumPy 数组 image Image open myimage png np image np asarray image 然后 我转置图像
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 使用 subprocess.Popen() 或 subprocess.check_call() 时程序卡住

    我想从 python 运行一个程序并找到它的内存使用情况 为此 我正在使用 l a out lt in txt gt out txt p subprocess Popen l shell False stdout subprocess PI
  • 高级描述熊猫

    有没有像 pandas 那样更高级的功能 通常我会继续这样 r pd DataFrame np random randn 1000 columns A r describe 我会得到一份很好的总结 就像这样 A count 1000 000
  • 数据框中 .map(str) 和 .astype(str) 有什么区别

    我有一个数据框 其列名为 col1 和 col2 的整数类型条目 我想将 col1 和 col2 的条目以及其间的 点 连接起来 我搜索并发现添加两个列条目 df col df col1 map str df col2 map str 并添
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • python Recipe:列出最接近等于值的项[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 考虑像这样的列表 0 3 7 10 12 15 19 21 我想获得最接近任何值的最近的最小数字 所以如果我通过4 我会得到3 如果我
  • Django 2、python 3.4 无法解码 urlsafe_base64_decode(uidb64)

    我正在尝试通过电子邮件激活用户 电子邮件有效 编码有效 我使用了 django1 11 中的方法 该方法运行成功 在 Django 1 11 中 以下内容成功解码为 28 其中 uidb64 b Mjg force text urlsafe
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • 两种 ODE 求解器之间的差异

    我想知道 两者之间有什么区别ODEINT and solve ivp用于求解微分方程 它们之间有什么优点和缺点 f1 solve ivp f 0 1 y0 y0 is the initial point f2 odeint f y0 0 1
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • C# 数据绑定不更新 WPF

    我正在尝试在后面的 C 代码而不是 XAML 中进行数据绑定 在 Expression Blend 2 中创建的 XAML 绑定到我的 CLR 对象工作正常 我的 C 实现仅在应用程序启动时更新 之后对 CLR 的后续更改不会更新我的标签内
  • php 抓取并输出给定​​标签中的特定值或数字

    所以我对 php 很陌生 但在一些帮助下 我已经弄清楚如何抓取具有像 h1 class 这样的标签标识符的网站 更好的是 我已经弄清楚如何输出我想要的精确单词或值 只要它由空格分隔即可 例如 如果给定的标签名称 的输出为 30 个球 我可以
  • Android:当我在片段附近使用它时,在 runOnUiThread 附近出现错误

    我是 Android 开发新手 我想将按钮与动画链接起来 我在附近遇到错误runOnUiThread and getApplication 当我将其添加为一项活动时 这很好 但是当在MainFragment它给出了错误 但是 当我修复错误时
  • 如何在 Windows 中通过鼠标挂钩设置光标位置?

    我正在尝试创建一个小应用程序 它将检测鼠标光标何时移动到屏幕边缘并将其移动到相对的边缘 以创建连续的桌面效果 如果有意义的话 下面是其他人的一些代码 鼠标钩子部分 我通过添加 SetCursorPos 来将鼠标暂时移动到固定位置 当我运行它
  • 部署到 Lightsail 实例失败,因为找不到适合您的部署组的实例

    继自马西的回答 https stackoverflow com a 64170933 5675325 我继续尝试使用他提到的步骤 调整区域 从 GitHub 进行部署 但我得到了 部署失败 因为没有找到您的实例 部署组 检查您的部署组设置以
  • xamarin VisualStudio for ios 中没有附加设备

    当我尝试使用 Visual Studio 中的 IOS 模拟器时 我遇到了真正的麻烦 所以我使用xamarin 最新稳定版本 在VS中创建了一个hello world应用程序 我将项目设置为主项目 当我刷新与mac的连接时 我无法选择应该在
  • 如何为 HWIOAuthBundle 编写用户提供程序

    我想通过社交网络编写一个登录功能 如果用户未登录 则将其保存到数据库中 如果用户存在 则登录该用户 我应该在我的提供商中写入什么内容 文件状态 该捆绑包需要一个能够根据以下内容加载用户的服务 oauth 端点的用户响应 如果您有定制服务 应
  • 将 KeyEvent 对象列表转换为字符串

    我正在开发一个需要能够使用外部 USB 或蓝牙键盘楔的应用程序 然后 我捕获 KeyEvent 并根据需要缓存它们 开始 结束标记 因此 此时我有需要将其转换为字符串的 KeyEvent 列表 所以我需要将这些有序的 KeyEvent 转换
  • 使用 Ganglia 进行 Spark 监控

    我正在测试 Apache Spark 框架 我需要监视有关集群的某些方面 例如网络和资源 Ganglia 看起来是满足我需要的一个不错的选择 然后 我发现Spark支持Ganglia Spark监控网页上有这样的信息 要安装 Ganglia
  • 谷歌云功能美国中部时区?

    我想知道什么时区云函数代码会像 EST CST MST PST 这样运行 我部署了函数来获取它 但它返回了2018 12 05T17 54 00 207Z并且不应用任何美国时区 不是在美国运行吗 export const dateLog f
  • vb.net 从通配符获取文件名列表

    我有字符串 c debug txt 在 Debug 文件夹中有几个 txt 文件 例如 test1 txt test2 txt test3 txt 如何从此字符串 c debug txt 获取通配符文件数组 a 0 c debug test
  • 快速搜索排序向量中大于 x 的最小值

    快速意味着比 O N 更好 这与 find 的能力一样好 我知道有ismembc and ismembc2 但我认为它们都不是我正在寻找的 我阅读了文档 他们似乎正在寻找会员equal到 x 但我想要索引第一个值较大 than x 现在如果
  • C++ Boost read_json 崩溃,我有 #define BOOST_SPIRIT_THREADSAFE

    最近其他人升级了我们的 boost 库 现在当 read json 函数被大量调用时我会看到这个 coredump 以前从未见过这个 我在代码中有 define BOOST SPIRIT THREADSAFE 这就是为什么以前没有发生这种情
  • TomEE + CXF配置参考

    所以我试图找到任何参考文档或使用这三个的重要示例 我发现的 最好的 是 TomEE OpenEJB JAXRS 重构 http rmannibucau wordpress com 2013 01 09 tomeeopenejb jaxrs
  • VS 2019 自定义 ASP.NET Core 项目模板

    我试图弄清楚如何 或者是否 可以创建一个自定义 Visual Studio 项目模板 该模板挂钩到 Visual Studio 2019 中可用的现有 ASP NET Core Web 应用程序模板 我想做的是类似于 madskristen
  • 使用 ApplicationViewBoundsMode.UseCoreWindow Windows Phone 8.1 时显示状态栏

    我的 Windows Phone 8 1 应用程序底部位于软件导航键下方 我用ApplicationViewBoundsMode UseCoreWindow使页面停留在软件导航键上方 但结果是页面的内容到达了状态栏下方 状态栏变得透明 有什
  • 禁用 Chromium Embedded 3 (DCEF3) 中的上下文菜单

    我试图在 Chromium Embedded DCEF3 窗口中禁用鼠标右键 上下文菜单 但我没有得到 我没有找到任何设置来本地执行此操作 例如 我可以禁用 查看源代码 我正在使用下面的代码 但我真正想要的是禁用上下文菜单 或者不希望它出现
  • 如何控制 UISlider Value Changed 事件频率?

    我正在编写一个 iPhone 应用程序 它使用两个 uislider 来控制使用 coreBluetooth 发送的值 如果我快速移动滑块 一个值会在接收器处冻结 大概是因为 值更改 事件触发得太频繁 导致写入命令堆积起来并最终被丢弃 如何
  • Spring、tomcat中限制http application/json请求体的大小

    我想限制接受的 application json http 请求正文的大小 因此 不可能将多个兆字节的 json 发送到我的应用程序 然后对其进行处理并使我的应用程序运行很长时间 我在这里读到 没有现成的解决方案可以做到这一点 Spring
  • 为 Apache2 + FastCGI 设置启用数据压缩

    这个问题与我之前的帖子相关 Android ICS 的 CSS 加载问题 https stackoverflow com questions 11575189 css loading issue with android ics 我遇到问题