我有一台运行IBM HTTP Server V8.5.5.0的IBM AIX机器,它最近被configuration为使用TLS 1.2。 根据公司政策我的服务器应该使用TLS 1.2,但出于兼容性的目的,我们也启用了TLS 1.1。 使用OpenSSL使用openssl s_client -connect ihs8server.example.com:443 -tls1_2显示服务器正在正确接受TLS 1.2连接。 但是,当我从我的浏览器(Firefox ESR 38.7.0)连接,连接安全信息对话框说我有一个TLS 1.1连接。 有什么办法可以configurationIBM HTTP Server(或Apache,因为IHS非常相似),默认为TLS 1.2,但是允许在客户端不支持的情况下通过TLS 1.1连接吗?
我试图在Debian 8(jessie)上用Apache 2.4来debugging一个问题。 我在/var/log/apache2/error.log注意到如下所示的行: [Sun May 15 11:53:10.526964 2016] [authz_core:error] [pid 14805] [client 32.135.203.150:43595] AH01630: client denied by server configuration: /var/www/html/admin/ 问题:在[client]块中,部分是什么:43595是什么意思? 我想这是一个端口号,但我不确定,因为它没有出现在Apache文档中 ,也没有在/usr/share/doc/apache2/README.Debian.gz中描述。 我也试图find日志格式是不是自定义的,但grep -rnw '/etc/apache2/' -e 'ErrorLogFormat'什么也不返回。
我有2个关于Apache Basic Auth的问题,我目前正在使用。 我有一个网站,经过一定的行动,网站将产生一个基本的身份validation用户名和密码,供用户用来访问服务。 目前工作正常 – 但网站正在迅速获取stream量,因此现在基本身份validation文件中有许多条目。 问题1)apache可以处理的基本auth用户数量是否有限制? 问题2)有没有更好的方法来pipe理基本的authentication用户? 或某种types的用户名/密码访问 谢谢
我们有一个SaaS应用程序,允许客户使用他们自己的域名 – 非常典型。 该架构的核心是一个简单的通用虚拟主机(apache),软件负责根据主机名parsing哪个客户。 但是,我们的许多客户都要求该自定义域名支持SSL。 目前我们通过使用SSL证书添加(更高优先级)虚拟主机并重新启动apache来实现这一点。 虽然这有效,但它有一些问题: 你要么重新启动apache,这意味着暂时的市中心,或切换到一个全新的服务器堆栈的DNS。 在偶然的机会有一个问题,我们没有赶上SSL证书,Apache抛出一个致命的错误,将无法重新启动。 把这个推广到成千上万的用户是不可能的或者至less是不切实际的。 简而言之 – 它不会缩放。 我们已经在负载均衡器中探索了SSL终止…这是有希望的,但是我们找不到任何支持多个SSL证书(通过SNI)的负载均衡器。 向前发展,越来越成为产品的瓶颈 – 如果需要的话,我们愿意改变架构或者离开Apache。
我有几个云托pipe服务器具有相同的configuration。 我希望他们都共享一个可以在一个地方编辑的httpd.conf文件。 有没有办法设置Apache以使用远程映射文件? 或者其他可以提供相同function的服务?
我想通过用户名授权用户,忽略任何密码。 用户名是一个许可证ID。 如果你有它,你可以访问网站,否则不。 通过设置AuthMySQLNoPasswd On ,系统现在可以在Apache 2.2上使用mod_auth_mysql 。 现在我正在尝试升级到Apache 2.4并使用mod_authz_dbd 。 我不想做任何dbd身份validation,所以我想过使用mod_authn_anon来validation任何用户,然后使用dbd进行授权。 这是configuration: AuthType basic AuthName "Please use license ID as user name, password is irrelevant" AuthBasicProvider anon Anonymous_NoUserID on # "authorized" is the name of an imaginary group that is returned by AuthzDBDQuery # when username matches license ID in the database Require dbd-group […]
我正在寻找一种方法来将Apache设置为高可用性。 这个想法是有一个服务于相同网站的2个Apache服务器集群。 我可以使用循环DNS设置每台服务器的IP地址,以便将每个请求随机发送到群集中的一台服务器(我不太在意负载平衡,尽pipe可能会出现这种情况稍后播放)。 我已经build立并使用了多个Apache VM服务器(分布在多个物理服务器上)服务于网站,并且使用循环DNS,并且工作正常。 SQL数据库是在高可用性集群中使用MariaDB设置的,Web数据(HTML,JS,PHP脚本,图像,其他资源)存储在LizardFS中,会话也存储在共享位置。 这一切都运行良好,直到群集中的某个服务器因为任何原因而变得不可访问。 然后,一个百分比的请求(大致上是服务器被closures的次数除以集群中的服务器总数)是没有答案的。 以下是我考虑的选项: 自动DNS更新 有一些过程来监视Web服务器的function,并从DNS中删除任何closures的服务器。 这有两个问题: 首先,尽pipe我们可以将TTL设置为一些非常低的数字(比如5秒),但是我听说less数DNS服务器会强制实现比我们更高的TTL。 而且,有些浏览器(即Chrome)会将DNScaching不less于60秒,而不pipeTTL设置如何。 所以,即使我们做得好,在DNS更新的情况下,一些客户可能无法访问站点一段时间。 其次,监控集群function的程序 并更新DNSlogging成为新的单点故障。 我们 可以通过将多个监视器分布在多个监视器上来解决这个问题 系统,因为如果他们都检测到问题,他们都做出相同的DNS更改,那么不应该导致任何问题。 uCarp /心跳 使被访问的IP地址在循环DNS虚拟中,并且在服务器closures的情况下将它们重新分配给从服务器中断下来的服务器。 例如,server1的VIP是192.168.0.101,server2的VIP是192.168.0.102。 如果server1发生故障,则192.168.1.102将成为server2上的附加IP。 这有两个问题: 首先,就我所知,uCarp / Heartbeat特别监视对等设备,以便无法访问,例如,如果对等设备无法被ping通。 当这种情况发生时,它接pipe被击落的对等体的IP。 这是一个问题,因为Web服务器可能无法为请求提供服务的原因更多,而不仅仅是在networking上不可访问。 Apache可能已经崩溃,可能存在configuration错误或其他原因。 我想要的标准是“服务器不按要求提供页面”,而不是“服务器不能ping通”。 我不认为我可以在uCarp / Heartbeat中定义。 其次,跨数据中心不起作用,因为跨数据中心的每组服务器都有不同的IP地址块。 我不能在数据中心之间有一个虚拟IP浮动。 跨数据中心运行的要求(是的,我的分布式文件系统和数据库集群可以跨数据中心使用)不是必需的,但是这将是一个很好的补充。 题 那么,关于如何处理这个问题的任何想法? 基本上,高可用性的圣杯:没有单点故障(无论是在服务器,负载平衡器还是数据中心),并且在切换时几乎不存在停机时间。
我已经从运行WAMP的Windows机器上复制了一个站点到一个带有标准LAMP栈的Linux机器上。 除了.htaccess中的规则之外,一切工作都很好。 我已经确认.htaccess正在testing一个简单的规则,所以我知道它与Apacheconfiguration无关。 这些规则在我的Windows机器上工作得非常好。 这里是我的.htaccess文件规则的一个副本。 RewriteRule ^admin/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php?admin=1&class=$1&id=$2&method=$3 [L,QSA] RewriteRule ^admin/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php?admin=1&class=$1&method=$2 [L,QSA] RewriteRule ^(.*)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php?class=$1&id=$2&method=$3 [L,QSA] RewriteRule ^admin/([A-Za-z0-9-]+)/$ index.php?admin=1&class=$1 [L,QSA] RewriteRule ^(.*)/([A-Za-z0-9-]+)/$ index.php?class=$1&method=$2 [L,QSA] RewriteRule ^download/([A-Za-z0-9-]+.*) index.php?class=downloads&method=download&target=$1 [L,QSA] RewriteRule ^stream/([A-Za-z0-9-+]+.*) index.php?class=downloads&method=download&target=$1 [L,QSA] RewriteRule ^(.*)/$ index.php?class=$1 [L,QSA] 有什么理由为什么这些不会在Linux上工作。 编辑: 我请求的URL是http://domain.com/access所以我创build了这个规则RewriteRule access index.php?class=access它的工作。
我有几个域指向同一台服务器。 只有其中一个域名(主要域名)实际上位于我的SSL证书上。 我在httpd.conf文件中包含了以下内容,所以它们都会永久redirect到一个域。 RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L] 意图是所有域名必须redirect到www.example.com作为HTTPS。 不过,我最近注意到这些redirect正在发生 – 但作为一个302redirect。 我在这里尝试了一个理智的检查,似乎按照我预期的那样工作。 所以回顾一下: 会发生什么情况: http : //sub1.example.com会导致302redirect到https://www.example.com 。 应该发生什么: http : //sub1.example.com会导致301redirect到https://www.example.com 。 我的问题是,所有的域名都必须在SSL证书上列出才能使301redirect发生? 我只是在这里拖着稻草。 只是为了完整性,这是发生这种情况时,初始页面和目标页面的请求/响应标头。 初始页面(sub1.example.com)的请求标题: GET / HTTP/1.1 Host: sub1.example.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 Upgrade-Insecure-Requests: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 […]
我需要创build一个RewriteRule来将像/tdg/image.jpg?mode=crop&width=300&height=300这样的URLpath/tdg/image.jpg?mode=crop&width=300&height=300给本地代理。 代理需要将给定的URL转换为以下格式。 http://localhost:8888/unsafe/300×300/smart/tdg/image.jpg 我先尝试使用ProxyPassMatch apache指令,但是我无法从查询string中检索宽度和高度数据。 ProxyRequests On ProxyPreserveHost On ProxyPassMatch ^\/(tdg.+\.(?:png|jpeg|jpg|gif))\?mode=crop.+width=(d+)&height=(d+) http://localhost:8888/unsafe/$2x$3/smart/$1 我也试过RewriteRule RewriteEngine On RewriteRule ^\/(tdg.+\.(?:png|jpeg|jpg|gif))\?mode=crop.+width=(d+)&height=(d+) http://localhost:8888/unsafe/$2x$3/smart/$1 在这两种情况下,代理的结果URL都是http://localhost:8888/unsafe/x/smart/$1 ,其中应该是http://localhost:8888/unsafe/300×300/smart/tdg/image.jpg 我不知道为什么我不能使用group正则expression式从查询string中获取width和height值。