标签: httpd

用于静态、动态内容的最快 Web 服务器?

我正在寻找可用的最快的 http 服务器:

  1. 提供静态内容——大量的大图像。最少的功能需要,尽可能快。

  2. 调度动态内容插件——想想一个网络服务器,它可以进行动态水印或图像转码。我正在寻找最快、最低开销的调度方式。

环境:linux 或 OS/X。任何可接受的语言。

httpd web

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

我如何在同一台服务器上运行两个不同的 Web 服务器?

我知道您不能使用两个不同的服务器进程来侦听相同的端口和 IP,但是如果您为每个进程分配一个单独的 IP 地址,显然这是可能的。是这种情况吗?我正在考虑在同一台服务器上同时运行 ningx 和 Apache(我也欢迎关于这是否是一个好主意的反馈),主要是因为理想情况下我想尝试切换到 nginx 但据说它的 Tomcat 支持不是很好,所以我想我需要为此保留apache。

有没有人做过类似的事情;是否推荐,你如何去做?

nginx httpd apache-2.2

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

将目录添加到 Apache Web Root?

我在 linux 上运行 httpd。

我有一个文件夹 ( /data/) 不在 apache 网络目录 ( /var/www/html/) 中,我希望用户能够从他们的浏览器访问它。我不想移动这个文件夹。

当文件夹位于 apache web 文件夹之外时,如何使该文件夹中的文件可被 web 浏览器访问?

linux httpd apache-2.2

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

如何配置 apache 以接受客户端 ssl 证书(如果存在)或使用 ldap 进行身份验证(如果证书不存在)?

我有一个提供 mercurial 存储库的 Apache 服务器,它目前使用 ldap 凭据进行身份验证。

我想允许单个用户(开始时)使用 SSL 客户端证书,所有其余用户仍然可以使用 ldap 凭据身份验证方法。

我查看了 Stack Overflow 和其他更广泛的(谷歌)搜索,但找不到有关如何设置的信息/指南。

以下 vhost 配置仅允许客户端证书通过。我注释掉了与 SSL-client 相关的三个语句;ladp 会起作用。

<VirtualHost hg.mydomain.com:80>

    ServerName hg.mydomain.com:80
    RedirectMatch permanent ^(.*)$ https://hg.mydomain.com$1

</VirtualHost>

<VirtualHost hg.mydomain.com:443>

        ServerName hg.mydomain.com:443
        # ServerAdmin webmaster@yourdomain.com
        DocumentRoot "/var/hg"
        CustomLog /var/log/httpd/hg-access.log combined
        ErrorLog /var/log/httpd/hg-error.log

        ScriptAliasMatch        ^/(.*)        /var/hg/hgweb.cgi$1
  # SSL Stuff...
        SSLEngine on
        SSLCipherSuite AES+HIGH:3DES+HIGH:RC4:!MD5:!EXPORT:!SSLv2:!aNULL:!eNULL:!KRB5

        # Server Certificate:
        SSLCertificateFile ssl/hg.mydomain.com.crt
        # Server Private Key:
        SSLCertificateKeyFile ssl/hg.mydomain.com.key
        # SSL Protocol Adjustments:
        BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

  <Directory /var/hg>
    Options ExecCGI …
Run Code Online (Sandbox Code Playgroud)

ssl configuration httpd

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

Apache 的 VirtualHost 中是否需要“ServerAdmin email@domain.tld”?

我宁愿没有

 ServerAdmin
Run Code Online (Sandbox Code Playgroud)

在我的 VirtualHost 中,因为它所做的只是吸引垃圾邮件。

没有什么用。

可以忽略吗?

httpd httpd.conf virtualhost apache-2.2

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

如何配置Apache“工人”以获得最大并发

希望这是一个好问题,对处于类似情况的任何人都有用。我最近接替了我公司一位非常资深的 Linux 管理员,这是我第一次不得不设置一个新服务器来为我们的客户提供我们的内容。我的前任在这件事上留下了有限的文件,因为在他离开时其他事情更重要。我已经广泛地参考了我拥有的文档,以及来自以前服务器的配置和大量在线阅读来设置所有内容。

我正在构建的服务器的“堆栈”如下:CentOS 7、Apache 2.4.6、MariaDB 5.X、服务于 JSP/Servlets 的 Tomcat 7。以前的生产安装使用 CentOS 5、旧版本的 Apache 和 MySQL 以及 Tomcat 5.X。

Apache 是前端,它使用 AJP 连接到 Tomcat 后端。大多数流量将是 HTTPS。

该服务器是,我认为是 Gen 9 HP 服务器,它在 RAID 1 阵列中具有 32GB RAM 和 SSD。在让它工作后,我现在关心的是最大化它同时为用户提供服务的能力,我预计数百个用户的爆发并不少见。为此,我希望防止堆栈中的任何一点出现瓶颈:从 Tomcat 和 MariaDB 开始,并针对这些采取特定的措施,我对这些措施感到满意。继续使用 Apache,但是我发现更难理解我应该做什么。

有 3 种不同类型的“工人”,我在优化这些方面有 3 个主要问题:
1. 有三个选项,prefork、mpm_worker 和 mpm_event。我不太明白如何配置它们,尽管我对它们的用途有一个大致的了解。
2. 与之前服务器中的 Apache 不同,StartServers、ServerLimit、MaxRequestsPerChild 等选项未在 /etc/httpd/conf/httpd.conf 中列出。是否有我必须手动覆盖的默认设置?除了“它们是上次手动添加的”之外,还有其他原因可以在旧的 httpd.conf 中找到设置而不是新的设置吗?

我指的是这个,在旧的 httpd.conf 中,我在新配置文件的任何地方都看不到任何类似的东西,只有一个规范:

// prefork MPM
// StartServers:要启动的服务器进程数
// MinSpareServers:保持空闲的最小服务器进程数
// MaxSpareServers:保持空闲的最大服务器进程数
// ServerLimit:MaxClients 的最大值服务器的生命周期
// MaxClients:允许启动的最大服务器进程数
// MaxRequestsPerChild:服务器进程服务的最大请求数 …

httpd centos apache-2.4

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

基于 LDAP 组成员资格的 Apache 用户身份验证不起作用

我想验证并授权一个 LDAP 组(Windows 上的 ApacheDS 2.0.0-20,使用组中的多个 uniqueMember 属性以及 httpd 配置中的“需要 ldap-group”语句)的所有用户访问 Web 资源。

尝试进行身份验证的用户也是此 LDAP 组的一部分,如果我在 httpd 配置中使用“需要有效用户”语句而不是“需要 ldap 组”语句,则该用户将获得授权。

设置:

  • 基于 Linux 的 Apache 2.4.23(来自 OpenSuse 42.1 Apache 存储库)
  • LDAP:基于 MS Windows 的 ApacheDS 2.0.0-20

ApacheDS LDAP 中的组配置:

LDAP 组配置

httpd的配置摘录:

<AuthnProviderAlias ldap ldapconfig>
        LDAPReferrals Off
        AuthLDAPBindDN "cn=query,ou=users,o=WJWext"
        AuthLDAPBindPassword secretpassword
        AuthLDAPURL "ldap://ldap.hostname:10389/o=WJWext?uid?sub"
</AuthnProviderAlias>

...
LogLevel trace7

<Location /xy>
...
        AuthType Basic
        AuthName "xy"
        AuthBasicProvider ldapconfig
        AuthLDAPGroupAttributeIsDN on
        AuthLDAPGroupAttribute uniqueMember
        AuthLDAPMaxSubGroupDepth 0
        AuthLDAPSubGroupClass groupOfUniqueNames
        Require ldap-group cn=groupname,ou=groups,o=WJWext
...
</Location>
Run Code Online (Sandbox Code Playgroud)

httpd的日志文件显示用户可以通过身份验证,但没有被组授权:

[Tue Nov …
Run Code Online (Sandbox Code Playgroud)

httpd ldap mod-auth-ldap apache-2.4

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

无法在 CentOS 7(Apache 服务器)上重新启动 httpd.service

我在我的centOS apache服务器上使用了命令“service httpd restart”,出现如下错误:

httpd.service 的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参阅“systemctl status httpd.service”和“journalctl -xe”。

我该如何解决这个错误?我尝试使用“yum restart httpd”命令重新安装我的 httpd,但它不起作用。

linux httpd httpd.conf centos7

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

重新启动httpd时“设备上没有剩余空间:AH00023:无法创建mpm-accept互斥锁”

我的服务器有时会被 apache 中的连接填满,卡在“发送回复”状态,需要我重新启动 apache。大多数情况下这是有效的,但有时我会在尝试重新启动 apache 时收到此错误:

Job for httpd.service failed because the control process exited with
error code. See "systemctl status httpd.service" and "journalctl -xe"
for details.
Run Code Online (Sandbox Code Playgroud)

运行systemctl status httpd.servicejournalctl -xe按照建议然后带回以下相关信息:

Nov 15 06:24:06 hostname.biologyreporter.com systemd-logind[874]:
 Failed to remove runtime directory /run/user/1067: Device or resource busy

Nov 15 06:24:27 hostname.biologyreporter.com restartsrv_httpd[29484]:
 [Fri Nov 15 06:24:27.255594 2019] [core:emerg] [pid 29509:tid 47498001208384]
 (28) No space left on device: AH00023: Couldn't create the mpm-accept mutex  
 
Nov 15 06:24:27 hostname.biologyreporter.com …
Run Code Online (Sandbox Code Playgroud)

httpd apache-2.2 apache-2.4 cpanel apache2

6
推荐指数
2
解决办法
9765
查看次数

什么控制 /tmp/systemd-private* 目录的清理?

systemd-tmpfiles 服务似乎没有清理这些文件夹,因为其中有/tmp/systemd-private-*-httpd.service-*/tmp/27 天前的文件(上次重新启动 httpd 时)。如果我/usr/lib/tmpfiles.d/tmp.conf正确读取文件,那么内部 tmp 目录应该每 10 天清理一次,因为对v /tmp 1777 root root 10dX /tmp/systemd-private-%b-*/tmp?我相信我读到的那个人说X不要删除目录,而是删除其中的所有内容。
我的 systemd-tmpfiles-clean.timer 服务设置OnBootSec=15minOnUnitActiveSec=1d

那么我是否正确理解了这一点,或者是否有其他服务负责清理该目录,或者..是否有什么东西坏了?蒂亚!

httpd centos apache-2.2 systemd centos7

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