我正在寻找可用的最快的 http 服务器:
提供静态内容——大量的大图像。最少的功能需要,尽可能快。
调度动态内容插件——想想一个网络服务器,它可以进行动态水印或图像转码。我正在寻找最快、最低开销的调度方式。
环境:linux 或 OS/X。任何可接受的语言。
我知道您不能使用两个不同的服务器进程来侦听相同的端口和 IP,但是如果您为每个进程分配一个单独的 IP 地址,显然这是可能的。是这种情况吗?我正在考虑在同一台服务器上同时运行 ningx 和 Apache(我也欢迎关于这是否是一个好主意的反馈),主要是因为理想情况下我想尝试切换到 nginx 但据说它的 Tomcat 支持不是很好,所以我想我需要为此保留apache。
有没有人做过类似的事情;是否推荐,你如何去做?
我在 linux 上运行 httpd。
我有一个文件夹 ( /data/) 不在 apache 网络目录 ( /var/www/html/) 中,我希望用户能够从他们的浏览器访问它。我不想移动这个文件夹。
当文件夹位于 apache web 文件夹之外时,如何使该文件夹中的文件可被 web 浏览器访问?
我有一个提供 mercurial 存储库的 Apache 服务器,它目前使用 ldap 凭据进行身份验证。
我想允许单个用户(开始时)使用 SSL 客户端证书,所有其余用户仍然可以使用 ldap 凭据身份验证方法。
我查看了 Stack Overflow 和其他更广泛的(谷歌)搜索,但找不到有关如何设置的信息/指南。
<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) 我宁愿没有
ServerAdmin
Run Code Online (Sandbox Code Playgroud)
在我的 VirtualHost 中,因为它所做的只是吸引垃圾邮件。
没有什么用。
可以忽略吗?
希望这是一个好问题,对处于类似情况的任何人都有用。我最近接替了我公司一位非常资深的 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:服务器进程服务的最大请求数 …
我想验证并授权一个 LDAP 组(Windows 上的 ApacheDS 2.0.0-20,使用组中的多个 uniqueMember 属性以及 httpd 配置中的“需要 ldap-group”语句)的所有用户访问 Web 资源。
尝试进行身份验证的用户也是此 LDAP 组的一部分,如果我在 httpd 配置中使用“需要有效用户”语句而不是“需要 ldap 组”语句,则该用户将获得授权。
设置:
ApacheDS 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) 我在我的centOS apache服务器上使用了命令“service httpd restart”,出现如下错误:
httpd.service 的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参阅“systemctl status httpd.service”和“journalctl -xe”。
我该如何解决这个错误?我尝试使用“yum restart httpd”命令重新安装我的 httpd,但它不起作用。
我的服务器有时会被 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.service或journalctl -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) systemd-tmpfiles 服务似乎没有清理这些文件夹,因为其中有/tmp/systemd-private-*-httpd.service-*/tmp/27 天前的文件(上次重新启动 httpd 时)。如果我/usr/lib/tmpfiles.d/tmp.conf正确读取文件,那么内部 tmp 目录应该每 10 天清理一次,因为对v /tmp 1777 root root 10d吗X /tmp/systemd-private-%b-*/tmp?我相信我读到的那个人说X不要删除目录,而是删除其中的所有内容。
我的 systemd-tmpfiles-clean.timer 服务设置OnBootSec=15min为OnUnitActiveSec=1d
那么我是否正确理解了这一点,或者是否有其他服务负责清理该目录,或者..是否有什么东西坏了?蒂亚!
httpd ×10
apache-2.2 ×5
apache-2.4 ×3
centos ×2
centos7 ×2
httpd.conf ×2
linux ×2
apache2 ×1
cpanel ×1
ldap ×1
nginx ×1
ssl ×1
systemd ×1
virtualhost ×1
web ×1