我们将运行一个 nginx 反向代理,它将通过互联网从后端提取数据。
我们所说的通过互联网是指后端计算机不会与前端反向代理位于一个局域网上。
我们认为,在通过互联网发送这些请求之前,最好先处理一下这些请求。
在我看来,它应该像这样工作:
客户端请求带有接受编码标头或 gzip 的内容。
反向代理将其发送到后端服务器。
由于发送了 gzip 的接受编码标头,后端会压缩此内容。
请求在链上一路发送压缩。
我们都可以做到这一点,因为它非常简单。我的问题是,如果我们在 nginx 反向代理端启用了 gzip 压缩,这将如何工作?
nginx 会尝试对已经 gzip 压缩的内容进行 gzip 压缩吗?
希望这是有道理的。谢谢。
更新1:
我了解缓存已经(以及此服务)gzip 内容的含义。我们将修改缓存密钥以包含接受编码标头,从而根据用户代理可以接受的内容提供(并缓存)正确压缩/未压缩的内容。
简单条件,从不匹配并设置变量:
SetEnvIf Request_URI "^/path/to/something*" access_granted
Run Code Online (Sandbox Code Playgroud)
使用 PHP 检查 URI 会给出正确的字符串,但从未设置变量。
echo getenv('Request_URI'); --> /path/to/something
echo getenv('access_granted'); --> <<empty>>
Run Code Online (Sandbox Code Playgroud)
就这么简单,但仍然总是无法匹配。
更新:有趣的一点是,我可以通过字符串实现 access_granted=1:
SetEnvIf Request_URI "^/path/*" access_granted
Run Code Online (Sandbox Code Playgroud)
/path 也是 RewriteBase - 也许它以某种方式连接,我不知道
我有一台服务器需要通过端口转发来接受传入的 ssh 连接。传入的客户端请求从服务器上的端口转发到本地端口的端口。他们使用公钥/私钥进行身份验证。所以:在客户端-R 40001:localhost:8443用于使服务器连接到自己的40001端口,并在客户端的8443端口访问一个应用程序。
如何限制服务器,以便该特定用户只能转发端口 40001 而不能转发其他端口?我看过permitopen,但它似乎只适用于正向隧道,而不是反向隧道。
最近,我将我的服务器从一个提供商移到另一个提供商,并开始在 apache 错误日志中收到此消息:
“请求失败:读取标题时出错”
错误示例和相应的访问 apache 日志:
ApacheServer$ cat error_log
ApacheServer [Tue Jan 20 11:07:44 2015] [error] [client x.x.x.x] request failed: error reading the headers
ApacheServer$ cat access_log
x.x.x.x - - [20/Jan/2015:11:06:44 +0200] "GET SomeRandomRequest HTTP/1.1" 400 226 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; BRI/2; MAARJS)" "-"
Run Code Online (Sandbox Code Playgroud)
我必须承认,除了 php 版本(从 5.3 到 5.4)之外,没有任何变化。
我没有看到与某些特定浏览器或某些特定请求的任何关系,这完全是随机的。
这也不是交换机问题,因为我在其他不共享同一交换机的 apache 服务器上也遇到了同样的问题。
直到现在我尝试:
- 更新网卡驱动程序
- 将 RX 从 256 …
我发现我们可以使用 ifcfg-interface 文件中的 NM_CONTROLLED 标志来启用或禁用网络管理器。
这个标志有什么作用?有人能正确解释吗?
我们的 aws 设置中有一个 OpenVPN,它是由客户端设置的,现在他们无法连接到开放 VPN,说“crl 已过期”。我们正在尝试重新生成 crl,但要做到这一点,我们需要转到 easy-rsa 文件夹,在那里我需要运行以下命令:
./easy-rsa crl-gen
2019 年 8 月 27 日星期二 10:25:17 122.166.3.167:18363 验证错误:深度=0,错误=CRL 已过期:C=US、ST=CA、L=旧金山、O=Fort-Funston、OU=MyOrganizationalUnit、CN =pkoparde,名称=EasyRSA,电子邮件地址=me@myhost.mydomain 2019 年 8 月 27 日星期二 10:25:17 122.166.3.167:18363 OpenSSL: 错误:14089086:SSL 例程:ssl3_get_client_certificate:证书验证失败 2019 年 8 月 27 日星期二 10:25:17 122.166.3.167:18363 TLS_ERROR:BIO 读取 tls_read_plaintext 错误 2019 年 8 月 27 日星期二 10:25:17 122.166.3.167:18363 TLS 错误:TLS 对象 -> 传入明文读取错误 2019 年 8 月 27 日星期二 10:25:17 122.166.3.167:18363 TLS 错误:TLS 握手失败 2019 年 …
我正在使用 Postfix 2.3.3 并且从我的服务器发送的邮件总是添加我想删除的无用标头。目前我只使用 PHP mail() 函数来发送邮件。
返回路径: 收到:来自 mss-us4.mail.pw (localhost.localdomain [127.0.0.1]) 通过 mss-us4.mail.pw (Postfix) 与 ESMTP ID EBAF41540011 为了 ; 2009 年 12 月 7 日星期一 16:59:02 +0000 (GMT) 收到:来自 mx2.mail.pw (inbound-us2.mail.pw [70.87.xx]) 通过 mss-us4.mail.pw (Postfix) 和 ESMTP 为了 ; 2009 年 12 月 7 日星期一 16:59:02 +0000 (GMT) 收到:来自mail.domain.org(未知[x.172.xx]) 通过 mx2.mail.pw (Postfix) 与 ESMTP id 6B20F56063B 为了 ; 2009 年 12 月 7 日星期一 16:59:02 +0000 (GMT) 收到:来自 ip1.domain.org (ip1.domain.org [127.0.0.1]) 来自 mail.domain.org (Postfix),ESMTP id 为 1E5B018080AC 为了 …
我们有以下 url 我们想要代理缓存:
file.php?parameter=one¶mater2=two&r=EPOCHTIMESTAMP
Run Code Online (Sandbox Code Playgroud)
查询字符串参数“参数”因请求而异。“paramater2”也是如此。
查询字符串参数 r 是我们用来确保客户端不提供缓存(在客户端)内容的时间戳。又名“缓存破坏者”。是的,我们还使用了所有适当的不缓存 h 标头。
现在,我们想通过 nginx 代理缓存其中的一些请求。是否可以指示 nginx 忽略 r 查询字符串参数,但在为条目设置缓存键时使用所有其他参数?如果我们不能忽略参数 r,那么 nginx 代理缓存将毫无用处,因为每个缓存键都是唯一的。
谢谢。
设置电子邮件服务器,我想知道,如果它出现故障怎么办。为了不丢失收到的邮件,我是否需要进行冗余设置?或者确保它不会离线超过一天就足够了吗?
假设我有一个带有一些 IP (IP1) 的专用服务器。我正在通过 DNS将多个域(例如example.com,example.net)重定向到该 IP。我在这里运行了一个 nginx 服务器,我在这里正确设置了 SNI,它适用于 HTTPS。
我还为两个域设置了 MX 以指向服务器。我已经设置了一个 SMTP 服务器进行侦听,并且通过从电子邮件地址推断允许的主机并拒绝任何其他主机的电子邮件,它在端口 25 上正确响应。
我已经为这台服务器设置了 TLS,但它只允许一个 SSL 证书(无论是 forexample.com还是 for example.net)。有没有办法通过 SMTP 使用 SNI(或等效物?),以便根据哪个目的地提供正确的 TLS 证书?
到目前为止,我还没有为此找到任何东西。我目前的策略是为不同的域使用不同的 IP(可能使用 IPv6,但在我的情况下不适用于 IPv4)并运行两个 SMTP 服务器(每个主机一个)和防火墙规则重定向到不同的端口基于目标IP。这对于 2 个域来说很麻烦,但是如果您有更多域,比如说 10 个域,它根本不可行。
有更好的策略吗?大型服务提供商如何处理大量主机的 SMTP?
apache-2.2 ×2
centos ×2
email ×2
linux ×2
nginx ×2
.htaccess ×1
400 ×1
availability ×1
cache ×1
compression ×1
crl ×1
email-server ×1
gzip ×1
openvpn ×1
postfix ×1
querystring ×1
redhat ×1
smtp ×1
smtp-headers ×1
sni ×1
ssh-tunnel ×1
ssl ×1