标签: httpd

Apache httpd 不会停止对客户端的 IP 执行反向 DNS 请求

显然,我的 Apache httpd 实例正在为每个传入客户端连接的 IP 地址执行反向 DNS(RDNS,给我这个 IP 地址的主机名)查找。这不好。特别是因为有时解析失败并丢失 PTR 记录 - 28 秒后

诊断:我添加%D到我的“组合”日志样式并以这种方式查看响应时间:对于所有使用其主机名记录的那些显然 <1s 和 20+s 对于那些记录其 IP 的那些。

这是我尝试过的:

  • 关闭server-status扩展。
  • 检查它HostnameLookups Off在配置中。
  • 检查mod_accessAllow/Deny规则中没有给出任何主机名。
  • 检查反向代理服务器是否遵循相同的规则。

我错过了什么?

domain-name-system httpd reverse-dns apache-2.2

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

为什么 https 不起作用?

我正在尝试将我的网站的根目录重定向到 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)

重写日志数据: …

mod-rewrite ssl https httpd apache-2.2

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

Apache 2.4 不可杀灭,无法在 Windows Server 上停止

我们有两个的Windows Server,一个在2012 R2和其他2008 R2,它使用Apache HTTP服务器httpd2.4中的代理服务器/反向代理模式(的使用ProxyPassProxyPassReverse和虚拟主机配置)。两台服务器都使用来自 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

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

如何在同一个 httpd 上将 HTTP 重定向到 HTTPS?

这是我得到的:

  • CentOS 5.4(32 位)
  • 已安装 Apache httpd(服务器版本:Apache/2.2.11 (Unix))
  • mod_rewrite 已经存在

问题:如何使用 VirtualHost 定义将简单的http://site.com重定向到https://site.com

PS:试图在 SF 的后续答案中找到,但没有找到好的解决方案。

谢谢。

httpd centos redirect

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

查看完整的计算 Apache httpd 配置?

是否有命令/工具来生成 Apache httpd 正在使用的计算配置?我知道我可以手动浏览 httpd.conf 和其他配置文件,但是为了方便,是否有标准工具可以生成所有包含文件和适用部分的配置?

谢谢,

詹姆士

编辑:我还应该提到我也在使用 Windows x-64 版本的 Apache,来自预构建的二进制文件。

configuration httpd apache-2.2

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

无效的命令 'SSLEngine' Centos

我卸载了 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 都很陌生,所以如果有人能帮助我解决这个问题,我将不胜感激。

httpd centos apache-2.2

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

永久禁用初始化服务

我刚刚配置了一个运行 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)

httpd centos init upstart

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

通过 ProxyPassMatch 作为处理程序转发 PHP 请求,或仅在文件存在时转发

我正在迁移我的服务器以使用 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 代理的建议?

httpd php-fpm proxypass fcgi apache-2.2

10
推荐指数
2
解决办法
8318
查看次数

VirtualHosts 内部或外部的目录?

将目录标签放在 VirtualHosts 内部或外部是否有区别?我找到了一个配置文件,里面有几个 VirtualHosts,里面有相同的 Directory 标签,外面也有相同的标签;所以我正在考虑摆脱这种重复,但我并不完全理解所涉及的语义。

httpd directory virtualhost apache-2.2

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

Apache“httpd”进程,利用我所有的服务器内存

我的小型 ec2 实例有 1.7 GB 内存,运行基于 CentOS 的 Amazon AMI,在 Apache 使用过多内存时存在问题。如果你看一下截图,内存使用率将在 90-100%,直到我重新启动 httpd 服务,它会重新开始,增加到 90+%。

在此处输入图片说明

我真的很感激有关如何定位问题的一些帮助。这可能是“正常”的 apache 行为,以利用所有可用内存吗?或者是否有我必须追捕的可能泄漏。目前,我对可能发生的事情感到有些困惑。

我们正在使用 Apache MPM prefork,没有 sql 或任何类似的东西——只有 apache。网站在这里

memory httpd lamp memory-usage apache-2.2

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