小编Jef*_*eff的帖子

Apache Directory 指令是否应该与 DocumentRoot 相关?

ApacheDirectory指令是否应该与 DocumentRoot 相关?我在 VirtualHost 的上下文中询问,但它应该没有任何区别。

换句话说,它应该是:

<VirtualHost>
    DocumentRoot /var/www
    <Directory /var/www>
    ...
Run Code Online (Sandbox Code Playgroud)

或者

<VirtualHost>
    DocumentRoot /var/www
    <Directory />
    ...
Run Code Online (Sandbox Code Playgroud)

两者都有效。在Apache的目录文档说:

Directory-path 要么是目录的完整路径,要么是通配符字符串...

...但随后他们展示了两个与“完整路径”声明相矛盾的例子。

ED:Apache Performance Tuning 页面上的FollowSymLinks 和 SymLinksIfOwnerMatch以及AllowOverride部分也有相互矛盾的例子。

为了好玩,我查看了 Debian 的默认 vhost 设置,发现了这个:

<VirtualHost *:80>
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    ...
Run Code Online (Sandbox Code Playgroud)

directory apache-2.2

16
推荐指数
1
解决办法
1万
查看次数

如何阻止对未启用 ssl 的虚拟主机的 HTTPS 请求转到第一个启用 ssl 的虚拟主机 (Apache-SNI)

我希望标题很清楚。

如何防止对未启用 ssl 的虚拟主机的 HTTPS 请求转到第一个启用 ssl 的虚拟主机(设置为 Apache-SNI)。

例如,使用我下面的缩写配置,https://example.comApache 在启用了 ssl 的 vhost 上处理对(非 ssl vhost)的请求https://example.org。我想禁用该行为并可能使用适当的 HTTP 响应代码进行回复(不确定那是什么)。

它甚至可能不可能,但我想我会问。

# I actually have a SNI setup, but it's not demonstrated here.
# I don't think it's relevant in this situation.

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName example.org
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

编辑:也许是第一个 ssl-vhost 中的 mod_rewrite 规则?

ssl virtualhost sni apache-2.2

7
推荐指数
1
解决办法
3258
查看次数

浏览器缓存是否需要 Last-Modified HTTP 标头?

当我取消设置Last-Modified在Apache的头(ETags也被禁止),火狐(4.01),将不缓存任何文件,无论我是否设定一个未来的Expires页眉或启用Cache-Control头。

那么浏览器缓存需要Last-Modified(和/或ETag)标头吗?

这里

如果响应中没有验证器(ETag 或 Last-Modified 标头),并且它没有任何明确的新鲜度信息,它将被视为不可缓存。

...好吧,如果“新鲜度信息”是指“Cache-Control”或“Expires”标头,那么 Firefox 应该在没有 Last-Modified 标头的情况下进行缓存。

编辑更多 Firefox 信息

请注意,在 Firefox 4.01 中由 Apache 2.2 提供的任何 PHP 文件上生成 304 的任何尝试都不会成功(重新加载、重新访问等)而没有Last-Modified标头,无论设置了有效缓存Cache-Control标头、Expires标头或两者的任何组合标题。

foo.php:这个文件的内容只是简单地回应“Hello World”。

HTTP/1.1 200 OK
Date: Mon, 06 Jun 2011 14:04:58 GMT
Server: Apache
Cache-Control: public, max-age=3600
Expires: Fri, 01 Jul 2011 21:23:55 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 1594
Keep-Alive: …
Run Code Online (Sandbox Code Playgroud)

http-headers

5
推荐指数
1
解决办法
5785
查看次数

如何阻止 Postfix 接受邮件到 root@hostname.localdomain

如何阻止 Postfix 接受来自外部世界的本地用户@my-FQDN 的邮件?

$ hostname -f
hostname.example.com
Run Code Online (Sandbox Code Playgroud)

Postfix 正在接受发送到 my-FQDN 的任何本地用户的邮件。因此,我们将使用root@hostname.example.com我想停止接收来自外部世界的邮件的本地用户作为示例。

我有一个非常基本的 Postfix/Dovecot/SASL/LDA 设置,但让我分享一些细节。

  • 在 :25 接收虚拟本地域/用户的邮件
  • 虚拟用户通过 Dovecot SASL 在 :587 上发送邮件

我试过在/etc/aliasesPostfix 和 Postfix 中反转用户virtual_alias_maps.cf,但没有运气。我在更新它们后运行了newaliasespostmap

#/etc/aliases:
#root: user@example.com

#/etc/postfix/virtual_alias_maps.cf:
root user@example.com
Run Code Online (Sandbox Code Playgroud)

我想我还剩下四个*(更新的)选择......

  1. 在 postfix/main.cf 中,弄乱mydestination. 我很确定我需要在这里保留我的 FQDN,所以我认为删除它不是一个好的选择。编辑:是的,虽然从mydestination 中删除您的 FQDN会禁止外部世界向本地用户发送邮件,但这不是禁用它的正确方法,因为这会导致其他事情。
  2. 在 postfix/main.cf 中,是否有smtpd_recipient_restrictions禁用此功能的设置?我在文档中找不到一个。
  3. 希望有人读到这个谁知道正确的方法。

这是我的 Postfix main.cf的相关部分:

myhostname = hostname.example.com
mydomain = example.com
mydestination = $myhostname, localhost.$mydomain, localhost …
Run Code Online (Sandbox Code Playgroud)

postfix

5
推荐指数
1
解决办法
7980
查看次数

如何从系统日志中过滤 mail.info?

如何从 /var/log/syslog (rsyslog.conf/Debian) 过滤 mail.info,同时保留大于或等于 mail.warn 的消息?

我已经尝试了附加和前置不同组合的几乎所有不同变体mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn,但显然文档比我更聪明。

目前我正在这样做,但可惜的是,她不行:

*.*;auth,authpriv.none;mail.warn,mail.!info -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)

编辑:我很难理解分号分隔符以及它如何“限制”以前的条目。

syslog rsyslog

5
推荐指数
1
解决办法
1754
查看次数

别名 IP 地址的正确网络掩码是什么?

我进行了大量搜索,但似乎关于别名 IP 地址的正确网络掩码应该是什么的信息存在冲突。一些相互矛盾的信息似乎是 FreeBSD 特有的。我正在寻找“技术上最合适”的答案,如果有的话。

我被分配了 xxx168/29。

这是eth0

address x.x.x.170
netmask 255.255.255.248
gateway x.x.x.169
Run Code Online (Sandbox Code Playgroud)

所以正确的eth0:0网络掩码应该是255.255.255.something.

编辑:根据 Chris S 的评论,我没有使用 FreeBSD;我正在使用 Debian。我的理解是 FreeBSD 用户应该使用 .255 作为别名。但我可能是错的,所以你应该做你自己的研究。

ip alias netmask

4
推荐指数
2
解决办法
1553
查看次数

收到的电子邮件标题行是什么意思?

我有点怀疑我的新邮件服务器可能没有正确配置,我想知道我是否在某个地方犯了错误。或者也许这只是雅虎用他们的邮件服务做事的方式。

从我的邮件服务器到 Yahoo 邮件:

Received: from 127.0.0.1  (EHLO hostname.example.com) (x.x.x.x)
  by mta1199.mail.gq1.yahoo.com with SMTP; Tue, 09 Jul 2013 13:53:55 -0700
Received: from me.atwork (c-x-x-x-x.comcast.net [x.x.x.x])
  by hostname.example.com (Postfix) with ESMTPSA id 66DB11B006B4
  for <example@yahoo.com>; Tue,  9 Jul 2013 16:53:54 -0400 (EDT)
Run Code Online (Sandbox Code Playgroud)

雅虎测试的第一行让我感到困惑。为什么 Yahoo 不像下面的 gmail 那样知道我的服务器名称?它似乎认为它是 127.0.0.1。那是因为雅虎没有在 DNS 中查找我吗?

收到:来自 127.0.0.1...

我的 gmail 测试是正确的。

从 gmail 到我的邮件服务器:

Received: from hostname.example.com (hostname.example.com. [x.x.x.x])
  by mx.google.com with ESMTP id n7si14797309oep.56.2013.07.09.13.55.25
  for <example@gmail.com>;
  Tue, 09 Jul 2013 13:55:25 -0700 (PDT)
Received: from me.atwork …
Run Code Online (Sandbox Code Playgroud)

email smtp-headers

3
推荐指数
2
解决办法
9251
查看次数

远程 IP 地址如何解析为 localhost?

我刚刚在我的系统日志中注意到这个奇怪的警告:

postfix/smtpd[26261]: warning: hostname localhost does not resolve to
    address 113.167.250.138
Run Code Online (Sandbox Code Playgroud)

...然后紧随其后的是:

postfix/smtpd[26261]: connect from unknown[113.167.250.138]
postfix/smtpd[26261]: NOQUEUE: reject: RCPT from unknown[113.167.250.138]:
    550 5.1.1 <advertising@crestore.com>: Recipient address rejected: User
    unknown; from=<bseatz@somedomain.example.com>
    to=<advertising@mydomain.example.com> proto=ESMTP helo=<localhost>
postfix/smtpd[26261]: disconnect from unknown[113.167.250.138]
Run Code Online (Sandbox Code Playgroud)

所以我决定从不同的 win 机器做一个 traceroute,并将远程 IP 解析为机器的 HOSTNAME:

> tracert 113.167.250.138

Tracing route to MYHOSTNAME [113.167.250.138] over a maximum of 30 hops:

  1  MYHOSTNAME [113.167.250.138]
  2  [2-5 removed]
  6  ix-8-0-3-0.tcore1.CT8-Chicago.as6453.net [x.x.x.x]
  7  if-22-2.tcore2.CT8-Chicago.as6453.net [x.x.x.x]
  8  if-11-3.tcore2.PDI-PaloAlto.as6453.net [x.x.x.x]
  9  if-22-2.tcore2.LVW-LosAngeles.as6453.net [x.x.x.x]
 10  if-10-0-0-5.mcore5.LAA-LosAngeles.as6453.net [x.x.x.x] …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ip

1
推荐指数
1
解决办法
2050
查看次数

一个域的 DNS 设置,在一个 IP 上使用 HTTP,在第二个 IP 上使用 HTTPS

关于 DNS 记录,我如何设置一个域,在 1.1.1.1 上www.example.com有 HTTP wwwwww在 2.2.2.2上有 HTTPS ?

为清楚起见:

  • HTTP www.example.com 解析为 1.1.1.1
  • HTTPS www.example.com 解析为 2.2.2.2

目前我有:

@   IN A 1.1.1.1
www IN A 1.1.1.1
Run Code Online (Sandbox Code Playgroud)

我目前对 DNS 记录的(平均)知识表明我无法以这种方式设置它。相反,我必须为类似secure IN A 2.2.2.2.

注意:不幸的是,在 1.1.1.1 上设置 HTTPS www.example.com 不是一个选项。

domain-name-system ip a-record

0
推荐指数
2
解决办法
8060
查看次数