gpt4 book ai didi

nginx - 使用 nginx,如何在从另一台服务器返回的页面上运行 SSI?

转载 作者:行者123 更新时间:2023-12-01 22:34:21 24 4
gpt4 key购买 nike

我正在尝试 nginx。我想用它来执行以下操作:

  1. 从 server1 检索包含一些 SSI 命令的页面
  2. 处理 SSI 命令,最终包括来自 server2 的内容
  3. 返回结果页面

使用本地文件时,SSI 可以工作,但使用 proxy_pass 从 server1 中使用页面时,SSI 无法工作。

这是我用来尝试实现上述目标的配置。

events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;

location /hello-world.html {
ssi on;
proxy_pass http://tom.office.bla.co.uk:8080/hello-world/;
}
}
}

出于测试目的,我使用了一个简单的 SSI 命令,如浏览器实际最终得到的输出所示,这与 server1 上的内容相同:

<html>

<!--# set var="test" value="Hello nginx!" -->
<!--# echo var="test" -->

</html>

我是否需要使用 proxy_pass 以外的其他东西,或者这是不可能的?谢谢!

最佳答案

确保 server1 没有返回压缩内容。如果返回的是 gzipped,nginx 不会解压缩它以对其应用 ssi 规则。

您可以通过清除 Accept-Encoding header 来确保以纯文本形式返回响应:

location /hello-world.html {
ssi on;
proxy_set_header Accept-Encoding ""; 
proxy_pass http://tom.office.bla.co.uk:8080/hello-world/;
}

关于nginx - 使用 nginx,如何在从另一台服务器返回的页面上运行 SSI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680989/

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