标签: httpd.conf

如何禁用 Apache 中的默认文档根目录?

我在运行 Apache Httpd 的服务器上托管了一些网站。每个网站都有自己的域或子域和虚拟主机。因此,我不需要默认的文档根目录。是否有可能禁用DocumentRoot/etc/httpd/conf/httpd.conf

security httpd.conf documentroot apache-2.2

14
推荐指数
3
解决办法
4万
查看次数

htaccess 的加载时间影响

通常有两种在 Apache 上处理东西的可能性:

  • 使用htaccess文件对文件夹进行一一配置

  • 完全放弃htaccess并将所有规则放入httpd.conf

htaccess 的使用是一个加载时间问题。我想知道,htaccess 的使用在加载时间方面有多昂贵?有任何测试吗?

performance .htaccess httpd.conf apache-2.2

14
推荐指数
2
解决办法
3257
查看次数

限制上传文件大小并在超过限制时将用户重定向到错误页面

是否可以将用户重定向到文件file too big页面

当 POST 请求大小超过指定限制时?

我知道 max-request-size 选项,但它只提供不能重载的静态页面。

我正在考虑创建一个重写规则,它需要

来自请求正文的内容大小作为输入并重定向到错误页面

更新

现在我们使用 nginx 作为前端。有什么新建议吗?

nginx lighttpd .htaccess httpd.conf upload

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

如何将任何 ServerAlias 重定向到相应的 ServerName?

我想 301 将所有 example.org 重定向到 www.example.org。下面的例子就是这样做的,但是它有很多噪音,因此很难维护并且容易出错:

<VirtualHost 192.0.2.123:80>
        ServerName      example.org
        RedirectPermanent       /               http://www.example.org
</VirtualHost>
<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        DocumentRoot    /usr/local/www/example
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您是否碰巧知道上面的整个内容是否有一些更短的版本?

像这样的伪配置

<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        ServerAlias     example.org
#       Redirect-Every-ServerAlias-To-ServerName
        DocumentRoot    /usr/local/www/example
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这样我就只需要提供应该重定向到的每个子域ServerAlias

mod-rewrite httpd.conf mod-alias apache-2.2

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

如何阻止来自我服务器上所有站点的用户代理?

我最初发布在webmasters.stackexchange.com 上,但被告知我会在这里得到更好的接待。


在过去的几天里,我一直在遭受(可能是无意的)DDOS 攻击。我从一个标识为“Mozilla/4.0(兼容;ICS)”的代理那里收到了很多请求,apache 吃掉了所有可用内存。

因此,我想阻止此用户代理伴随的所有请求,因此我尝试在 httpd.conf 中执行此操作:

SetEnvIfNoCase User-Agent "Mozilla/4.0 (compatible; ICS)" bad_user
Deny from env=bad_user
Run Code Online (Sandbox Code Playgroud)

但是当我重新启动 apache 时,它​​抱怨在deny这里使用。不必将它包装在一个locationdirectory块中,这意味着我必须为每个站点添加一个新块,有什么办法可以拒绝访问整个服务器?


更新:我得到的错误

  • 重新启动 Web 服务器 apache2
    /etc/apache2/httpd.conf 第 4 行出现语法错误:这里不允许拒绝 [失败]

httpd.conf useragent apache-2.2

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

Web 服务器上的交换空间不足,该怎么办?

我有 2 个 LAMP Web 服务器,它们经常用完交换空间(请参阅附加的顶部屏幕截图)。

Apache的设置如下:

<IfModule prefork.c>
启动服务器 64
最小备用服务器 64
最大备用服务器 128
服务器限制 256
第 256 章
MaxRequestsPerChild 4096
</IfModule>

PHP 的资源限制是:

最大执行时间 = 30
最大输入时间 = 30
内存限制 = 80M

我是这样的服务器管理员的新手(我是一名开发人员);我可以调整什么来防止交换?

这是崩溃时其中一台服务器上的顶部屏幕截图: 截屏

httpd swap httpd.conf apache-2.2

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

已加载 Apache 标头模块但无法在 htaccess 中设置标头

我在我的新开发机器 (mac) 上安装并运行了 Apache 2.2.29 (unix)。我正在尝试为 API 项目设置 CORS 标头 - 我已经做过很多次了。

该项目的 htaccess 文件如下所示:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE" 
    Header set Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type"
    ServerSignature Off
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cms/public
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

并且 headers 模块已加载到我的 conf 中:

LoadModule headers_module libexec/mod_headers.so
Run Code Online (Sandbox Code Playgroud)

模块文件存在于 apache conf 中显示的位置,并且加载正常:

dan$ httpd -M

Loaded Modules:
 core_module (static)
 mpm_event_module (static)
 http_module …
Run Code Online (Sandbox Code Playgroud)

.htaccess httpd.conf http-headers apache-2.2 cors

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

Apache (Linux) httpd 侦听链路本地 IPv6 地址

我希望 Apache 侦听特定接口上的本地链路 ipv6 地址。我的 httpd.conf 中有以下行:

Listen [fe80::a00:16ff:fe89:420f]:80
Run Code Online (Sandbox Code Playgroud)

它基于此处的 Apache 文档:https : //httpd.apache.org/docs/2.4/bind.html “IPv6 地址必须括在方括号中”

我的操作系统/Apache版本详情如下:

$ httpd -v
Server version: Apache/2.4.18 (Unix)
Server built:   Dec 14 2015 08:05:54
$ uname -rv
4.3.3-3-ARCH #1 SMP PREEMPT Wed Jan 20 08:12:23 CET 2016
Run Code Online (Sandbox Code Playgroud)

使用显示的结果journalctl -e是:

(22)Invalid argument: AH00072: make_sock: could not bind to address [fe80.....

IPv6 正在工作,因为我有 sshd 和 dnsmasq 监听。我曾尝试向地址附加两个不同的范围 ID 后缀。您可以使用的接口ID3或名字net1作为既是scopeidping6sshd

$ ip addr | grep -Po …
Run Code Online (Sandbox Code Playgroud)

ipv6 httpd.conf arch-linux link-local apache-2.4

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

Apache 2.4 上的 Catch-All HTTPS Vhost

是否可以在 Apache 2.4 上配置一个包罗万象的(默认)HTTPS Vhost?我目前有 4 个域,并且一个 HTTP 捕获所有域,但是一旦我尝试添加任何类型的配置,我的其他虚拟主机就会中断。这是我的配置的样子:

<VirtualHost _default_:80>
    # Default catch-all virtual host.
    Redirect permanent / https://example-prod.com
</VirtualHost>

<VirtualHost _default_:80>
    ServerName example-prod.com
    ServerName www.example-prod.com
    Include conf/sites/example-prod.com.conf
</VirtualHost>

<VirtualHost _default_:80>
    ServerName example-dev.com
    Include conf/sites/example-dev.com.conf
</VirtualHost>

#
# This is the virtual host I'm missing and that I cannot get to work.
#
#<VirtualHost _default_:443>
#   # Default catch-all virtual host.
#   ServerAlias *
#   SSLEngine on
#   SSLCertificateFile "C:/prod/hosts.crt.pem"
#   SSLCertificateKeyFile "C:/prod/hosts.key.pem"
#   SSLCertificateChainFile "C:/prod/intermediate.crt.pem"  
#   Redirect permanent …
Run Code Online (Sandbox Code Playgroud)

httpd httpd.conf virtualhost apache-2.4

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

Apache 有条件地将 HTTP 重定向到 HTTPS

全部。我有语法问题。我尝试过遵循其他来源,但它不起作用。

我已成功创建无条件 HTTP 到 HTTPS 重定向。访问http://www.robjvargas.com,以 HTTPS 结束。那里一切都很好。

但现在我的证书似乎需要HTTP。它使用 Let's Encrypt,因此需要每 90 天更新一次。重定向生效后,试运行会失败。关闭重定向后,试运行就会成功。

所以我尝试放入 RewriteCond 来免除证书续订流量:

# HTTP to HTTPS redirect
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{Request_URI} !^./acme-challenge/*
RewriteRule (.*) https://www.robjvargas.com$1 [R,L]
Run Code Online (Sandbox Code Playgroud)

只是它不起作用。我想我错过了一些值得我一看到就拍额头的东西,但我没有看到它。通过上面的代码,HTTP 到 HTTPS 的重定向似乎仍然是通用的。因此,显然 RewriteCond 是不正确的。URI 之前的句点可能是错误的,但我已经尝试过使用和不使用它。

我还将完整的 URI 放入 RewriteCond 中,但这也没有免除它。

快到了。我没有收到任何错误。它只是永远不会满足预期的条件。

我缺少什么?

http httpd.conf redirect apache-2.4

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