这是我需要进一步说明的虚拟主机配置的以下部分:
<VirtualHost *:80>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin example@example.com
ServerName 141.29.495.999
ServerAlias example.com
...
Run Code Online (Sandbox Code Playgroud)
这是示例配置,类似于我目前拥有的(我目前没有域名)。
<VirtualHost *:80>- 允许在端口 80 上向可以联系到该服务器的 IP 发出的所有 HTTP 请求进行以下设置。例如,如果服务器可以通过多个 IP 访问,您可以将此指令限制为一个,而不是两个。
ServerName- 如果 HTTP 请求的主机部分与此名称匹配,则允许该请求。通常,这将是映射到 IP 的域名,但在这种情况下,HTTP 请求主机必须匹配此 IP。
ServerAlias - 服务器接受的备用名称。
对我来说,令人困惑的部分是,在上述情况下,如果我设置ServerAlias mytestname.com然后向 发出 HTTP 请求mytestname.com,则必须有一个指向服务器 IP 的 DNS 记录才能正常工作?在这种情况下,ServerAlias 只是基本上 EXTRA ServerName 条目吗?
假设我有一个 DNS 条目,foobar.com = 141.29.495.999但后来我有ServerName = 141.29.495.999并且ServerAlias是空的,这是否意味着尽管 foobar.com 被解析为正确的 IP,因为没有引用来接受 foobar.com in …
我们有一个带有 4 TB 文件系统的 Linux 服务器,用于存储 subversion 存储库。有许多存储库,其中一些已经使用了好几年。
磁盘最初约为 1 TB,但我们开始耗尽空间并在大约一年前将其增加到 4 TB。现在,人们报告无法将文件签入他们的存储库。错误信息是No space left on device。
该磁盘有大约 1.5 TB 的空闲空间,并且还报告有空闲的 inode - 但是,无法在其上创建新文件。仍然可以更新旧文件,并且会间歇性地更新一些存储库,但是下次尝试时相同的存储库可能会失败。
我们有一个内部 yum 服务器,其中包含多个存储库(RHEL 存储库的副本、内部创建的程序等)。我们的内部系统防火墙与互联网隔离,因此它们只能使用我们的内部服务器。
为了在将补丁完全投入生产之前对其进行测试,我们有一个stable默认启用的存储库。任何更新都会放入-latestrepo 中。当我们修补服务器时,我们将使用该-latest-repo 来构建新的基线并在几台服务器上进行测试。测试后,我们将该基线设为新的stable. 该-latest回购协议默认情况下禁用。
其中一个 repos 用于我们从 epel、rpmforge 等获取的一些包。我们有一个脚本,它只同步我们想要的包以及它们需要的任何依赖项。在包同步后,repo 每晚使用 createrepo 重建。由于这些软件包未经测试,它们最终会出现在int-optional-latest通常被禁用的repo 中。如果服务器需要来自该存储库的软件包,我们将使用enable-repo=int-optional-latest.
今天,一位同事试图在服务器上安装 perl-Excel-Writer-XLSX。服务器没有找到包裹。我尝试使用 createrepo 重建存储库,并搜索 repodata 文件以确保该文件在那里。它是。我还使用以下方法验证了该文件是否存在于存储库中
repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX
Run Code Online (Sandbox Code Playgroud)
我还清除了客户端的元数据缓存,使用
sudo yum clean expire-cache
Run Code Online (Sandbox Code Playgroud)
尽管如此,客户端仍然声称该包在服务器上不存在。
我不认为问题出在服务器端,因为当我尝试从另一台机器进行搜索时,它找到了包。我验证了 repo 文件是正确的,并且名称yum.example.com在两台服务器上解析为相同的 IP 地址 - 但其中一个可以找到包,而另一个不能。
在我研究如何让我的整个网站 https 时,有很多讨论。大多数答案是将http重定向到https(.htaccess文件),这不好,因为两次(两次请求)做同样的工作不好。此外,“中间人”首先使用 http,我希望我的网站直接使用 https。有没有另一种方法可以让你的整个网站 https ,以及如何做到这一点?例如,当用户输入 example.com 时,example.com 会自动转到 https,而无需先从 http 或其他任何重定向?
我遵循网络上指南中的简单步骤:
a) 通过命令向 Nagios 添加用户 htpasswd htpasswd.users username
b) 在 cgi.cfg 文件中将此用户添加到行:
authorized_for_system_information=nagiosadmin, username
authorized_for_configuration_information=nagiosadmin, username
authorized_for_system_commands=nagiosadmin, username
authorized_for_all_services=nagiosadmin, username
authorized_for_all_hosts=nagiosadmin, username
authorized_for_all_service_commands=nagiosadmin, username
authorized_for_all_host_commands=nagiosadmin, username
Run Code Online (Sandbox Code Playgroud)
c) 重启nagios3服务,甚至重启apache2服务
但是当我尝试从 nagios 网络界面列出任何内容时,它仍然给我这个恼人的消息:
It appears as though you do not have permission to view information for any of the services you requested...
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.
Run Code Online (Sandbox Code Playgroud)
请问哪里有问题?
当我从我的邮件服务器向我的 @bellsouth.net 电子邮件发送测试消息时,postfix 日志显示它已发送正常,但该消息从未到达我的 bellsouth 收件箱。如果 At&T 阻止消息,我不应该收到失败通知或退回邮件吗?
我正在尝试解决为什么有些客户收不到电子邮件的问题,但如果 mail.log 中没有任何内容表明邮件被拒绝,我怎么知道哪些邮件已成功发送?
日志显示:
Feb 27 09:02:36 MyHOSTNAME postfix/pickup[26175]: D53A72713E5: uid=0 from=<root>
Feb 27 09:02:36 MyHOSTNAME postfix/cleanup[26487]: D53A72713E5: message-id=<20120227140236.D53A72713E5@example.com>
Feb 27 09:02:36 MyHOSTNAME postfix/qmgr[5595]: D53A72713E5: from=<root@example.com>, size=878, nrcpt=1 (queue active)
Feb 27 09:02:37 MyHOSTNAME postfix/smtp[26490]: D53A72713E5: to=<myemail@bellsouth.net>, relay=gateway-f1.isp.att.net[204.127.217.16]:25, delay=0.57, delays=0.11/0.03/0.23/0.19, dsn=2.0.0, status=sent (250 ok ; id=20120227140036M0700qer4ne)
Feb 27 09:02:37 MyHOSTNAME postfix/qmgr[5595]: D53A72713E5: removed
Run Code Online (Sandbox Code Playgroud)
AT&T 服务器接受了消息,对吗?
我碰巧有一个 At&T/Bellsouth 电子邮件,但我没有在我们发送给每个 ISP 的帐户。我需要某种方式来了解消息是否到达目的地。我的 main.cf 文件中是否有任何设置会影响我们是否收到拒绝/退回通知?
我们有一个 linux box(称为jumper),用于访问几个单独的 DMZ 中的服务器。每个 DMZ 都有自己的子域名(例如idmz.example.org, jdmz.example.org),每个子域都有自己的权威名称服务器。
我们正在用新的 Linux 机器替换旧的 Solaris 跳线。大多数事情都运行良好,但是我们在idmz.example.com使用 SSH连接到子域中的服务器时遇到了问题。Ping 工作正常;我们可以使用dig解析名称,但 SSH 显示“无法解析”。
名称解析在服务器端运行良好,当我们使用 IP 地址连接时,没有延迟或超时。但是客户端的SSH声称无法解析服务器。
jenny@jumper$ ping server.idmz.example.com
PING server.idmz.example.com (192.168.1.3) 56(84) bytes of data.
jenny@jumper$ ssh -v server.idmz.example.com
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
ssh: Could not resolve hostname server.idmz.example.com: Name or service not known
Run Code Online (Sandbox Code Playgroud)
jenny@jumper$ …Run Code Online (Sandbox Code Playgroud) 尽管尽一切努力过滤垃圾邮件,但即使在我将 main.cf 设置为不允许它并检查 DNS 等之后,我仍然收到来自未知的垃圾邮件。即使在添加了 pcre: to REJECT /.unknown./ some of他们仍然通过,我不明白为什么!这是我的日志文件。第一个块没问题,它被拒绝了,它来自未知。第二个块是相同的,来自未知但它通过并且没有被拒绝。我希望拒绝所有“来自未知的连接”,而不仅仅是其中的一些。Centos 上的 postfix v2.8.4。任何想法我做错了什么?谢谢。
该区块被拒绝
Nov 24 12:00:30 sof postfix/smtpd[4632]: connect from unknown[91.99.51.137]
Nov 24 12:00:30 sof postfix/smtpd[4632]: connect from unknown[91.99.51.137]
Nov 24 12:00:31 sof postfix/smtpd[4632]: NOQUEUE: reject: RCPT from unknown[91.99.51.137]: 450 4.7.1 <91.99.51.137.parsonline.net>: Helo command rejected: Host not found; from=<emailsend@urbangroup.kz> to=<name@domain.com> proto=ESMTP helo=<91.99.51.137.parsonline.net>
Nov 24 12:00:31 sof postfix/smtpd[4632]: NOQUEUE: reject: RCPT from unknown[91.99.51.137]: 450 4.7.1 <91.99.51.137.parsonline.net>: Helo command rejected: Host not found; from=<emailsend@urbangroup.kz> to=<name@domain.com> proto=ESMTP helo=<91.99.51.137.parsonline.net>
Nov 24 12:00:31 …Run Code Online (Sandbox Code Playgroud) 我正在尝试重定向没有 www 的 url。到 www.version(example.com 到 www.example.com)。我用通常的
RewriteCond %{HTTP_HOST} ^example\.com [nc]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
这适用于我所有的其他项目。但是,在这个特定站点上,它以重定向循环结束。这是奇怪的部分:我试图卷曲非 www 版本以查看它使用
curl --get http://example.com --dump-header domain.header > domain.html. 头文件如下所示:
HTTP/1.1 301 Moved Permanently
Date: Mon, 06 Jun 2011 14:45:16 GMT
Server: Apache/2.2.16 (Debian)
Location: http://example.com/
Vary: Accept-Encoding
Content-Length: 310
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)
但是,生成的 HTML 文件是这样的:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.example.com/">here</a>.</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at example.com Port 80</address> …Run Code Online (Sandbox Code Playgroud) 我拉了一个 Docker 镜像:
$ docker pull ghost
Run Code Online (Sandbox Code Playgroud)
并从图像运行一个容器:
$ docker run --name test-ghost -p 8080:2368 -d ghost
7d984e974f6a75fe18b3d397b5c8f0a428928a2be9df83f0d61a679aa5f537fc
Run Code Online (Sandbox Code Playgroud)
我的理解是,-p交换机会将主机上的端口 (8080) 映射到 Docker 内部的端口 (2368),以便我可以从 Docker 外部(即从我的主机)访问在 Docker 内运行的 Web 服务器。
但是,当我尝试从我的主机浏览 Chrome 中的以下任何地址时:
http://localhost:8080/
http://0.0.0.0:8080/
http://127.0.0.1:8080/
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
This webpage is not available
ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)
这似乎可能是连接问题,而不是容器内部的问题,因为当我检查容器内部正在运行的进程时,似乎 NodeJS 正在运行:
$ docker top test-ghost
UID PID PPID ... CMD
docker 4290 1028 ... npm
docker 4324 4290 ... sh -c node index
docker 4325 4324 ... node index
Run Code Online (Sandbox Code Playgroud)
但似乎没有在端口 8080 上侦听:
$ …Run Code Online (Sandbox Code Playgroud) apache-2.2 ×2
linux ×2
postfix ×2
.htaccess ×1
apache-2.4 ×1
centos ×1
docker ×1
email ×1
http ×1
http-headers ×1
https ×1
isp ×1
mac-osx ×1
mod-rewrite ×1
nagios ×1
networking ×1
php ×1
port ×1
redhat ×1
spam ×1
ssh ×1
users ×1
xfs ×1
yum ×1