显然,我的 Apache httpd 实例正在为每个传入客户端连接的 IP 地址执行反向 DNS(RDNS,给我这个 IP 地址的主机名)查找。这不好。特别是因为有时解析失败并丢失 PTR 记录 - 28 秒后。
诊断:我添加%D到我的“组合”日志样式并以这种方式查看响应时间:对于所有使用其主机名记录的那些显然 <1s 和 20+s 对于那些记录其 IP 的那些。
这是我尝试过的:
server-status扩展。HostnameLookups Off在配置中。mod_access在Allow/Deny规则中没有给出任何主机名。我错过了什么?
我正在尝试将我的网站的根目录重定向到 https。尽管重写发生了,但 https 不会产生任何结果。浏览器说。connecting to thinkingmonkey.me...和停滞。
- 听 80和听 443存在于 conf 文件中。
- 我已经重新启动了 httpd。
- 我正在使用正确的证书文件和私钥文件。
- httpd 日志中没有错误,SSL 日志(我有一个单独的SSl 日志)。
- 即使我尝试直接访问https://thinkingmonkey.me,实际上也没有任何内容记录到 SSL 访问日志中。
Anetstat -pant | grep httpd有这个:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::443 :::* LISTEN 1334/httpd
tcp 0 0 :::80 :::* LISTEN 1334/httpd
Run Code Online (Sandbox Code Playgroud)
.htaccess:
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://thinkingmonkey.me [L,R=302]
Run Code Online (Sandbox Code Playgroud)
重写日志数据: …
我们有两个的Windows Server,一个在2012 R2和其他2008 R2,它使用Apache HTTP服务器(httpd)2.4中的代理服务器/反向代理模式(的使用ProxyPass,ProxyPassReverse和虚拟主机配置)。两台服务器都使用来自 Apache Haus 的Apache 2.4.27 x64二进制构建。
我们有一些备份脚本在两台服务器上运行。他们停止所有服务(包括 Apache),然后进行备份并再次重新启动所有服务。
几年来(近 4 年),这些脚本运行良好。但是从 开始July 12, 2018,行为现在很奇怪。备份脚本正在执行它们的工作,停止所有服务,进行备份,但是现在,除 Apache 之外的所有服务都重新启动。
经过排查,发现Apache 2.4.27服务无法停止。使用服务控制台并尝试手动停止服务时,控制台显示“正在停止”并且没有任何反应。
所以我检查了正在运行的进程,看到一个httpd.exe进程正在运行。我试图终止该进程,但没有运气。
所以,我试过:
taskkill /im "httpd.exe" /f /t
Run Code Online (Sandbox Code Playgroud)
输出是:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Run Code Online (Sandbox Code Playgroud)
所以我测试了pskill从 Sysinternals …
httpd service windows-server-2008-r2 windows-server-2012-r2 apache-2.4
这是我得到的:
问题:如何不使用 VirtualHost 定义将简单的http://site.com重定向到https://site.com ?
PS:试图在 SF 的后续答案中找到,但没有找到好的解决方案。
谢谢。
是否有命令/工具来生成 Apache httpd 正在使用的计算配置?我知道我可以手动浏览 httpd.conf 和其他配置文件,但是为了方便,是否有标准工具可以生成所有包含文件和适用部分的配置?
谢谢,
詹姆士
编辑:我还应该提到我也在使用 Windows x-64 版本的 Apache,来自预构建的二进制文件。
我卸载了 Apache,然后重新安装了它,现在当我尝试启动它时,出现以下错误:
Syntax error on line 94 of /usr/local/psa/admin/conf/generated/13636697550.95452800_server.include:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)
我没有尝试启用 SSL 或任何东西。我对 Linux 和一般的 Apache 都很陌生,所以如果有人能帮助我解决这个问题,我将不胜感激。
我刚刚配置了一个运行 CentOS 6 的新 VPS,它与 Apache 一起提供。
我想禁用 Apache,因为我将使用 Nginx。
我知道我可以删除 /etc/init.d/ 中的脚本,但我不想这样做,因为它是系统附带的一个库存。我宁愿有一种优雅的方式来禁用该服务。
我以为我可以在 /etc/inittab 中放一些东西,但 inittab 包含:
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init. …Run Code Online (Sandbox Code Playgroud) 我正在迁移我的服务器以使用 mod_proxy_fcgi 和 php-fpm 而不是 mod_php。Apache 能够将 .php 请求转发到 fcgi 代理,并且 PHP 可以正确执行。我有这个工作:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
Run Code Online (Sandbox Code Playgroud)
不幸的是,即使文件不存在,Apache 也会将所有 .php 请求转发给代理。这会导致一些问题。我的 ErrorDocument 规则没有被调用,DirectoryIndex index.php index.html也没有回退到 index.html。
我能够使用 mod_rewrite 解决这些问题:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^/((.*\.php)(/.*)?)$
RewriteCond /var/www/html/%2 -f
RewriteRule . fcgi://127.0.0.1:9000/var/www/html/%1 [P]
Run Code Online (Sandbox Code Playgroud)
但是,Apache 文档不推荐 RewriteRule:“这是因为此标志触发了默认工作程序的使用,该工作程序不处理连接池。”
理想情况下,我想我要么想在 FilesMatch 块中使用 ProxyPass(目前不受支持),要么定义一个新的处理程序,通过 fcgi 代理并使用它来处理 .php 请求,类似于 mod_php 所做的。
任何模拟标准 mod_php 设置但实际上通过 fcgi 代理的建议?
将目录标签放在 VirtualHosts 内部或外部是否有区别?我找到了一个配置文件,里面有几个 VirtualHosts,里面有相同的 Directory 标签,外面也有相同的标签;所以我正在考虑摆脱这种重复,但我并不完全理解所涉及的语义。
我的小型 ec2 实例有 1.7 GB 内存,运行基于 CentOS 的 Amazon AMI,在 Apache 使用过多内存时存在问题。如果你看一下截图,内存使用率将在 90-100%,直到我重新启动 httpd 服务,它会重新开始,增加到 90+%。

我真的很感激有关如何定位问题的一些帮助。这可能是“正常”的 apache 行为,以利用所有可用内存吗?或者是否有我必须追捕的可能泄漏。目前,我对可能发生的事情感到有些困惑。
我们正在使用 Apache MPM prefork,没有 sql 或任何类似的东西——只有 apache。网站在这里。
httpd ×10
apache-2.2 ×7
centos ×3
apache-2.4 ×1
directory ×1
fcgi ×1
https ×1
init ×1
lamp ×1
memory ×1
memory-usage ×1
mod-rewrite ×1
php-fpm ×1
proxypass ×1
redirect ×1
reverse-dns ×1
service ×1
ssl ×1
upstart ×1
virtualhost ×1